Javascript 原型函数调用和绑定
有人能解释一下背后的逻辑吗Javascript 原型函数调用和绑定,javascript,call,bind,Javascript,Call,Bind,有人能解释一下背后的逻辑吗 Function.prototype.call.bind(Array.prototype.forEach); 当我读到“bind”函数时,它被赋予一个函数,这个函数被称为要执行的对象的上下文 但在这种情况下,绑定接收函数。所以在我看来,这不是直观的语法。 如果我还有更多 myOtherFunction.call(this) is调用仍然与forEach的上下文连接?Array.prototype。forEach是绑定到数组上下文的方法。因此,您可以轻松地迭代如下
Function.prototype.call.bind(Array.prototype.forEach);
当我读到“bind”函数时,它被赋予一个函数,这个函数被称为要执行的对象的上下文
但在这种情况下,绑定接收函数。所以在我看来,这不是直观的语法。
如果我还有更多
myOtherFunction.call(this)
is调用仍然与forEach的上下文连接?
Array.prototype。forEach
是绑定到数组上下文的方法。因此,您可以轻松地迭代如下数组:
[1,2,3].forEach(function(x){ console.log(x) })
这相当于:
[].forEach.call([1,2,3],function(x){ console.log(x) })
因此,您将[1,2,3]
作为调用的当前上下文(this
)传递到forEach()
什么Function.prototype.call.bind(Array.prototype.forEach)
does正在调用(call
)另一个函数(Array.prototype.forEach
)作为变量的当前上下文绑定bind
函数
var forEach=Function.prototype.call.bind(Array.prototype.forEach);
字面意思是:»如果对forEach
进行了函数调用,请像在Array.prototype.forEach
的上下文中一样调用它
它是指向[].forEach.call(此函数)的快捷方式。
有关更多参考资料,请参见MDN上的。此处给出的完美示例