javascript调用函数的方法

javascript调用函数的方法

ID:32366532

大小:53.70 KB

页数:5页

时间:2019-02-03

javascript调用函数的方法_第1页
javascript调用函数的方法_第2页
javascript调用函数的方法_第3页
javascript调用函数的方法_第4页
javascript调用函数的方法_第5页
资源描述:

《javascript调用函数的方法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、一次又一次的,我发现,那些有bug的Javascript代码是由于没有真正理解Javascript函数是如何工作而导致的(顺便说一下,许多那样的代码是我写的).JavaScript拥有函数式编程的特性,当我们选择面对它的时候,这将成为我们前进的阻碍.   作为初学者,我们来测试五种函数调用的方法,从表面来看我们会认为那些函数与C#中函数的作用非常相似,但是我们一会儿可以看到还是有非常重要的不同的地方的,忽视这些差异无疑会导致难于跟踪的bug。首先让我们创建一个简单的函数,这个函数将在将在下文中使用,这个函数仅仅返回当前

2、的this的值和两个提供的参数.?12345function makeArray(arg1,arg2){    return [this,arg1,arg2];}  最常用的方法,但不幸的,全局的函数调用  当我们学习Javascript时,我们了解到如何用上面示例中的语法来定义函数。  我们也知道调用这个函数非常的简单,我们需要做的仅仅是:?123456789makeArray('one','two');//=>[window,'one',

3、'two']Waitaminute.What'sthatwindowalert(typeofwindow.methodThatDoesntExist);//=>undefinedalert(typeofwindow.makeArray);//=>window.makeArray('one','two');//=>[window,'one','two']  我说最普遍的调用方法是不幸的是因为它导致我们声明的函数默认是全局的.我们都知道全局成员不是编程的最佳实践.这在JavaScript里是特别的正确,在JavaScrip

4、t中避免使用全局的成员,你是不会为之后悔的.  JavaScript函数调用规则1  在没有通过明确所有者对象而直接调用的函数中,如myFunction(),将导致this的值成为默认对象(浏览器中的窗口)。  函数调用  让我们现在创建一个简单的对象,使用makeArray函数作为它的一个方法,我们将使用json的方式来声明一个对象,我们也来调用这个方法?1234567891011//creatingtheobjectvar arrayMaker={    someProperty:'somevaluehere', 

5、   make:makeArray};//invokethemake()methodarrayMaker.make('one','two');//=>[arrayMaker,'one','two']//alternativesyntax,usingsquarebracketsarrayMaker['make']('one','two');//=>[arrayMaker,'one','two']  看到这里的不同了吧,this的值变成了对象本身.你可能会疑问原始的函数定义并没有改变,为何它不是window了呢.好吧,这就

6、是函数在JSavacript中传递的方式,函数在JavaScript里是一个标准的数据类型,确切的说是一个对象.你可以传递它们或者复制他们.就好像整个函数连带参数列表和函数体都被复制,且被分配给了arrayMaker里的属性make,那就好像这样定义一个arrayMaker:?123456var arrayMaker={    someProperty:'somevaluehere',    make:function (arg1,arg2){        return [this,arg1,arg2];    }}

7、;  JavaScript函数调用规则2  在一个使用方法调用语法,像obj.myFunction()或者obj['myFunction'](),这时this的值为obj   这是事件处理代码中bug的主要源头,看看这些例子?1234567891011

8、="btn3"  onclick="buttonClicked();"/>function buttonClicked(){    var text=(this ===window)?'window' :this.id;    alert(text);}var butto

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。