【问题标题】:Uncaught TypeError: Cannot convert undefined or null to object at push (<anonymous>)未捕获的类型错误:无法在推送时将 undefined 或 null 转换为对象(<anonymous>)
【发布时间】:2021-09-01 08:50:26
【问题描述】:

为什么会抛出错误,

const callback = Array.prototype.push;
callback(1)

但这不会,

Array.prototype.push(1)

我有点知道原因是this在第一种情况下丢失了上下文,但你能告诉我更多细节吗?

【问题讨论】:

    标签: javascript arrays this prototype push


    【解决方案1】:

    this,在函数内部,取决于(在大多数情况下)函数的调用方式。 callback() 在没有任何对象的情况下被调用。在这种情况下,这将指向全局对象窗口(如果您在浏览器中)。你不能做 window.push()。

    额外:大多数情况下的一个例外是箭头函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-17
      • 1970-01-01
      • 2020-03-28
      • 1970-01-01
      • 2020-08-15
      • 2020-08-02
      • 1970-01-01
      • 2018-11-21
      相关资源
      最近更新 更多