我正在尝试在 JavaScript 中调用和应用函数,我想出了一个方法来帮助我理解它们在做什么,但我想在将其记入内存之前检查它是否正确。
设备是
x.method.call(y, z)
有效调用 y.method(z)
哪里method
仅存在于x
.
对于所有情况都是如此吗?我完全偏离轨道了吗?有没有更好的方法来思考这个问题?
最佳答案
您的解释基本上是正确的,并且是一种合理的思考方式。实际发生的情况是执行不带括号的 x.method
来“解除绑定(bind)”函数,并将 this
的值更改为 window
(或 在严格模式下未定义)。然后,当您对函数参数调用
p>call
时,您可以将 this
的值更改为传递给 call
的第一个值。
关于javascript - 理解JavaScript的调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23728092/