Javascript函数绑定覆盖(如何将其绑定到另一个对象)

前端之家收集整理的这篇文章主要介绍了Javascript函数绑定覆盖(如何将其绑定到另一个对象)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法通过Function.prototype.bind重新绑定已绑定到另一个对象的函数
var a={};
var b={};
var c=function(){ alert(this===a); };
c(); // alerts false
c=c.bind(a);
c(); // alerts true
c=c.bind(b);
c(); // still alerts true

我知道我可以使用不同的方法并保持“干净”的绑定功能,但我只是想知道如何重用已绑定的函数.

解决方法

Is there a way to rebind a function that is already bound to another object via Function.prototype.bind?

ES2015 spec开始,关于Function.prototype.bind:

19.2.3.2 Function.prototype.bind ( thisArg,…args)

[…]

Note 2: If Target is an arrow function or a bound function then the thisArg passed to this method will not be used by subsequent calls to F.

对于早期版本也是如此.

猜你在找的JavaScript相关文章