广告
返回顶部
首页 > 资讯 > 前端开发 > html >JavaScript中怎么调用函数
  • 324
分享到

JavaScript中怎么调用函数

2024-04-02 19:04:59 324人浏览 独家记忆
摘要

这期内容当中小编将会给大家带来有关javascript中怎么调用函数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。首先让我们创建一个简单的函数,这个函数将在将在下文中使用

这期内容当中小编将会给大家带来有关javascript中怎么调用函数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

首先让我们创建一个简单的函数,这个函数将在将在下文中使用,这个函数仅仅返回当前的this的值和两个提供的参数.

<script type="text/javascript">  function makeArray(arg1, arg2){      return [ this, arg1, arg2 ];  }  </script>

最常用的方法,但不幸的,全局的函数调用 当我们学习Javascript时,我们了解到如何用上面示例中的语法来定义函数。 ,我们也知道调用这个函数非常的简单,我们需要做的仅仅是:

makeArray('one', 'two');  // => [ window, 'one', 'two' ]     Wait a minute. What's that window        alert( typeof window.methodThatDoesntExist );  // => undefined  alert( typeof window.makeArray);  // =>        window.makeArray('one', 'two');  // => [ window, 'one', 'two' ]

我说最普遍的调用方法是不幸的是因为它导致我们声明的函数默认是全局的.我们都知道全局成员不是编程的***实践.这在JavaScript里是特别的正确,在JavaScript中避免使用全局的成员,你是不会为之后悔的.
JavaScript函数调用规则1

在没有通过明确所有者对象而直接调用的函数中,如myFunction(),将导致this的值成为默认对象(浏览器中的窗口)。

函数调用 让我们现在创建一个简单的对象,使用 makeArray函数作为它的一个方法,我们将使用JSON的方式来声明一个对象,我们也来调用这个方法

//creating the object  var arrayMaker = {      someProperty: 'some value here',      make: makeArray  };     //invoke the make() method  arrayMaker.make('one', 'two');  // => [ arrayMaker, 'one', 'two' ]  // alternative syntax, using square brackets  arrayMaker['make']('one', 'two');  // => [ arrayMaker, 'one', 'two' ]

看到这里的不同了吧,this的值变成了对象本身.你可能会疑问原始的函数定义并没有改变,为何它不是window了呢.好吧,这就是函数在jsavacript中传递的方式,函数在JavaScript里是一个标准的数据类型,确切的说是一个对象.你可以传递它们或者复制他们.就好像整个函数连带参数列表和函数体都被复制,且被分配给了 arrayMaker里的属性make,那就好像这样定义一个 arrayMaker:

var arrayMaker = {      someProperty: 'some value here',      make: function (arg1, arg2) {          return [ this, arg1, arg2 ];      }  };

JavaScript函数调用规则2

在一个使用方法调用语法,像 obj.myFunction()或者 obj['myFunction'](),这时this的值为obj

这是事件处理代码中bug的主要源头,看看这些例子

<input type="button" value="Button 1" id="btn1"  />  <input type="button" value="Button 2" id="btn2"  />  <input type="button" value="Button 3" id="btn3"  onclick="buttonClicked();"/>     <script type="text/javascript">  function buttonClicked(){      var text = (this === window) ? 'window' : this.id;      alert( text );  }  var button1 = document.getElementById('btn1');  var button2 = document.getElementById('btn2');     button1.onclick = buttonClicked;  button2.onclick = function(){   buttonClicked();   };  </script>

点击***个按钮将会显示”btn”因为它是一个方法调用,this为所属的对象(按钮元素) 点击第二个按钮将显示”window”因为 buttonClicked是被直接调用的(不像 obj.buttonClicked().) 这和我们第三个按钮,将事件处理函数直接放在标签里是一样的.所以点击第三个按钮的结果是和第二个一样的. 使用像Jquery的JS库有这样的优点,当在jQuery里定义了一个事件处理函数,JS库会帮助重写this的值以保证它包含了当前事件源元素的引用,

//使用jQuery $('#btn1').click( function() { alert( this.id ); // jQuery ensures 'this' will be the button });

jQuery是如何重载this的值的呢?继续阅读

另外两个:apply()和call() 你越多的使用JavaScript的函数,你就越多的发现你需要传递函数并在不同的上下文里调用他们,就像Qjuery在事件处理函数里所做的一样,你往往经常需要重置this的值.记住我告诉你的,在Javascript中函数也是对象,函数对象包含一些预定义的方法,其中有两个便是apply()和call(),我们可以使用它们来对this进行重置.

var gasGuzzler = { year: 2008, model: 'Dodge Bailout' };  makeArray.apply( gasGuzzler, [ 'one', 'two' ] );  // => [ gasGuzzler, 'one' , 'two' ]  makeArray.call( gasGuzzler,  'one', 'two' );  // => [ gasGuzzler, 'one' , 'two' ]

这两个方法是相似的,不同的是后面的参数的不同,Function.apply()是使用一个数组来传递给函数的,而Function.call()是将这些参数独立传递的,在实践中你会发现apply()在大多数情况下更方便.

JSavacript函数调用规则3

如果我们想在不复制函数到一个方法而想重载this的值的时候,我们可以使用 myFunction.apply( obj ) 或 myFunction.call( obj ).

构造器 我不想深入研究在Javascript中类型的定义,但是在此刻我们需要知道在Javascript中没有类,而且任何一个自定义的类型需要一个初始化函数,使用原型对象(作为初始化函数的一个属性)定义你的类型也是一个不错的主义,让我们来创建一个简单的类型 //声明一个构造器

function ArrayMaker(arg1, arg2) {      this.someProperty = 'whatever';      this.theArray = [ this, arg1, arg2 ];  }  // 声明实例化方法  ArrayMaker.prototype = {      someMethod: function () {          alert( 'someMethod called');      },      getArray: function () {          return this.theArray;      }  };     var am = new ArrayMaker( 'one', 'two' );  var other = new ArrayMaker( 'first', 'second' );     am.getArray();  // => [ am, 'one' , 'two' ]

一个非常重要并值得注意的是出现在函数调用前面的new运算符,没有那个,你的函数就像全局函数一样,且我们创建的那些属性都将是创建在全局对象上(window),而你并不想那样,另一个话题是,因为在你的构造器里没有返回值,所以如果你忘记使用new运算符,将导致你的一些变量被赋值为 undefined.因为这个原因,构造器函数以大写字母开头是一个好的习惯,这可以作为一个提醒,让你在调用的时候不要忘记前面的new运算符. 带着这样的小心,初始化函数里的代码和你在其他语言里写的初始化函数是相似的.this的值将是你将创建的对象.

上述就是小编为大家分享的JavaScript中怎么调用函数了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网html频道。

--结束END--

本文标题: JavaScript中怎么调用函数

本文链接: https://www.lsjlt.com/news/67608.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript中怎么调用函数
    这期内容当中小编将会给大家带来有关JavaScript中怎么调用函数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。首先让我们创建一个简单的函数,这个函数将在将在下文中使用...
    99+
    2022-10-19
  • javascript怎么调用函数
    这篇文章给大家分享的是有关javascript怎么调用函数的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。javascript的调用函数方法有:1、使用makeArray函数作为它的一个方法,使用json的方式来声...
    99+
    2023-06-14
  • JavaScript函数怎么调用
    这篇文章主要介绍“JavaScript函数怎么调用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript函数怎么调用”文章能帮助大家解决问题。函数:函数分类:自定义函数和系统函数常用系统...
    99+
    2023-06-27
  • 看JavaScript中怎么调用C#函数
    本篇文章为大家展示了看JavaScript中怎么调用C#函数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。关键代码如下:Default.aspx.cs    ...
    99+
    2023-06-17
  • JavaScript回调函数怎么应用
    本篇内容介绍了“JavaScript回调函数怎么应用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!   ...
    99+
    2022-10-19
  • JavaScript运算符怎么调用函数
    这篇“JavaScript运算符怎么调用函数”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“...
    99+
    2022-10-19
  • JavaScript函数是怎么被调用的
    这篇文章主要介绍了JavaScript函数是怎么被调用的的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript函数是怎么被调用的文章都会有所收获,下面我们一起来看看...
    99+
    2022-10-19
  • javascript new怎么调用构造函数
    本篇内容主要讲解“javascript new怎么调用构造函数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript new怎么调用构造函数”吧!说明在内存中创建新对象。新对象内部的...
    99+
    2023-06-20
  • 怎么在javascript中异步回调函数
    这篇文章将为大家详细讲解有关怎么在javascript中异步回调函数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、说明JavaScript代码本质上总是阻塞的。但是这种阻塞性使我们无法在...
    99+
    2023-06-15
  • JavaScript中函数调用栈是怎么工作的
    这篇文章将为大家详细讲解有关JavaScript中函数调用栈是怎么工作的,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。合理地处理堆栈信息能使你清除无用的数据, 而只专注于...
    99+
    2022-10-19
  • javascript中如何调用函数
    这篇文章将为大家详细讲解有关javascript中如何调用函数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。javascript中调用函数的方法:1、使用“对象.函数名(...
    99+
    2022-10-19
  • Python中怎么调用函数
    Python中怎么调用函数,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。函数function是什么?函数的作用函数是可以实现一些特定功能的小方法或是小程序。在Python中...
    99+
    2023-06-19
  • JavaScript怎么作为方法来调用函数
    这篇文章主要讲解了“JavaScript怎么作为方法来调用函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript怎么作为方法来调用函数”吧!...
    99+
    2022-10-19
  • javascript回调函数有什么用
    这篇文章主要为大家展示了“javascript回调函数有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“javascript回调函数有什么用”这篇文章吧。 ...
    99+
    2022-10-19
  • Javascript中怎么实现函数声明与递归调用
    Javascript中怎么实现函数声明与递归调用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、函数声明变量式声明先创建一个匿名函数,然后把...
    99+
    2022-10-19
  • javascript如何调用函数
    这篇文章主要讲解了“javascript如何调用函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript如何调用函数”吧!javascript调用函数方法有:1、使用构造函数调...
    99+
    2023-06-14
  • python中怎么通过函数名调用函数
    这篇文章主要介绍python中怎么通过函数名调用函数,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、通过eval实现 常用内置函数(不用import就可以直接使用) :help(obj) 在线帮助, ob...
    99+
    2023-06-15
  • vb中function函数怎么调用
    在VB中,可以通过以下步骤来调用一个函数:1. 首先,确保函数已经被定义。函数应该在Sub或Function语句块内部定义,例如:`...
    99+
    2023-09-13
    vb
  • oracle中convert函数怎么调用
    在Oracle中,`CONVERT`函数可以用于将一个字符串从一个字符集转换为另一个字符集。它的语法如下:```CONVERT(st...
    99+
    2023-10-12
    oracle
  • Linux中Shell函数怎么调用
    本篇内容主要讲解“Linux中Shell函数怎么调用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux中Shell函数怎么调用”吧!Shell 函数的本质是一段可以重复使用的脚本代码,这段...
    99+
    2023-06-27
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作