var obj = {
x: 81,
getX: function() {
console.log( this.x)
}
};
var getX = obj.getX.bind(obj);//use obj as 'this';
getX();//81
var getX = function(){
obj.getX.apply(obj);
}
getX();//also 81
bind 和 call/apply 的使用看起来很相似,我想知道它们之间有什么区别。上面的两个 getX 函数是一样的吗?
bind
返回一个函数,其行为类似于原始函数,但具有this
预定义的。当您想要将函数传递给事件处理程序或其他异步回调时,通常使用它。
call
and apply
将立即调用一个函数,让您指定this
以及函数将接收的任何参数。
您的第二个示例定义了一个匿名函数,该函数调用apply
。这是一种常见的模式;bind
提供了一个标准实现,允许您通过简单的函数调用来完成此操作(从而更快更容易编写)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)