【发布时间】:2021-09-01 08:50:26
【问题描述】:
为什么会抛出错误,
const callback = Array.prototype.push;
callback(1)
但这不会,
Array.prototype.push(1)
我有点知道原因是this在第一种情况下丢失了上下文,但你能告诉我更多细节吗?
【问题讨论】:
标签: javascript arrays this prototype push
为什么会抛出错误,
const callback = Array.prototype.push;
callback(1)
但这不会,
Array.prototype.push(1)
我有点知道原因是this在第一种情况下丢失了上下文,但你能告诉我更多细节吗?
【问题讨论】:
标签: javascript arrays this prototype push
this,在函数内部,取决于(在大多数情况下)函数的调用方式。 callback() 在没有任何对象的情况下被调用。在这种情况下,这将指向全局对象窗口(如果您在浏览器中)。你不能做 window.push()。
额外:大多数情况下的一个例外是箭头函数。
【讨论】: