浅谈javascript中call()、apply()、bind()的用法

来源: 电脑维修教程   阅读:     发表时间:

一直对javascript中的apply/call/bind的用法很:,恰好看到了这篇文章。对三者之间的区别与联系算是有了比力清晰的认识。这里记录下来,分享给各人。

一直对javascript中的apply/call/bind的用法很:,恰好看到了这篇文章。对三者之间的区别与联系算是有了比力清晰的认识。这里记录下来,分享给各人。

call(thisobj,arg1,arg2...)、apply(thisobj,[obj1,obj2...])这二个要领是每个函数都包括的非担任的要领

call(thisobj[, args])和apply(thisobj[, args])

作用都是一样的,简单来说就是改变当前使用该要领的工具中的this指向,指向调用要领中的thisobj工具二者的区别(第一个参数是相同的)就是call要领中传入的参数是是一个个列举出来的,而apply要领中的参数二是一个数组

还是举例说明比力直观:

window.color='red';

var o={color:"blue"};

function saycolor(){

alert(this.color);

};

saycolor(); //red(全局函数,this是window)

saycolor.call(this);//red(调用call要领,指定工具是this,这里的this是window,没什么意义)

saycolor.call(window);//red(调用call要领,指定工具是window,没什么意义)

saycolor.call(o); //blue (调用call要领,指定工具是o,所以this指代工具o,这里由本来的window指向了o)

saycolor.apply(o);//blue (调用call要领,指定工具是o,所以this指代工具o,这里由本来的window指向了o)

ecmascript5中的bind()要领和前二种要领相似,bind()这个要领会创建一个函数的实例,这个实例的this值会被绑定到通报给bind()函数的值

例子:

以上是:解决浅谈javascript中call()、apply()、bind()的用法问题的详细资料教程

?
热门链接: 机顶盒 | 主板维修 | 声卡怎么安装 | 路由器怎么设置 | 电脑内存维修技术 | 维修大全?| 主板维修资料 | 电脑声卡音响故障维修 | 内存 | 显示器 | 电源维修教程 | cpu | 硬盘 | 显卡 |win8操作系统教程|linux操作系统教程|ubuntu操作系统教程|mac苹果操作系统教程|execl教程
友情链接: ?苹果手机维修?| 更多...