提问人:cesc 提问时间:6/16/2021 更新时间:6/16/2021 访问量:75
未捕获的 TypeError:无法在推送时将 undefined 或 null 转换为对象 (<anonymous>)
Uncaught TypeError: Cannot convert undefined or null to object at push (<anonymous>)
问:
为什么这会抛出错误,
const callback = Array.prototype.push;
callback(1)
但这不会,
Array.prototype.push(1)
我知道原因是在第一种情况下丢失了上下文,但你能给我更多细节吗?this
答:
1赞
Tushar Shahi
6/16/2021
#1
this
,在函数内部,(在大多数情况下)取决于函数的调用方式。callback() 是在没有任何对象的情况下调用的。在这种情况下,这将指向全局对象窗口(如果您在浏览器中)。你不能执行 window.push()。
额外 :大多数 cases 语句的一个例外是箭头函数。
评论