我试图绕过调用并在JavaScript中应用函数,我想出了一个帮助我理解他们正在做什么的设备但是我想在我提交之前检查它是否正确记忆。
设备
x.method.call(y, z)
实际上只调用y.method(z)
method
仅存在x
。
这适用于所有情况吗?我完全偏离了吗?有没有更好的方法来考虑这个?
答案 0 :(得分:1)
您的解释大多是正确的,并且是一种合理的思考方式。实际发生的是在没有括号的情况下执行x.method
“取消绑定”该函数,并在严格模式下将this
的值更改为window
(或undefined
)。然后在函数参数上调用call
时,将this
的值更改为传递给call
的第一个内容。