gpt4 book ai didi

javascript - 原型(prototype)函数调用和绑定(bind)

转载 作者:行者123 更新时间:2023-11-28 01:04:40 26 4
gpt4 key购买 nike

谁能解释一下背后的逻辑

Function.prototype.call.bind(Array.prototype.forEach);

当我读到“绑定(bind)”函数时,函数被称为要在其中执行的对象的上下文。

但在本例中绑定(bind)接收函数。所以对我来说这不是直观的语法。如果我还有更多

 myOtherFunction.call(this)

调用仍然与 forEach 的上下文连接吗?

最佳答案

Array.prototype.forEach 是一个方法,绑定(bind)到数组的上下文。因此,您可以轻松地迭代数组,例如:

 [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); 的作用是调用 (call) bind 函数另一个函数(Array.prototype.forEach)作为变量的当前上下文。

var forEach=Function.prototype.call.bind(Array.prototype.forEach);

的字面意思是:»如果对 forEach 进行了函数调用,请像您在 Array.prototype.forEach 的上下文中那样调用它.«它是 [].forEach.call(this,function)

的快捷方式

有关更多引用信息,请参阅 MDN Function.prototype.call() , Function.protoype.bind() .

关于javascript - 原型(prototype)函数调用和绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25229704/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com