gpt4 book ai didi

javascript - 为什么此功能附加到全局上下文

转载 作者:行者123 更新时间:2023-11-30 10:30:38 26 4
gpt4 key购买 nike

当我使用 var 时关键字来声明它在封闭范围内声明的任何变量。但是在下面的代码中,我声明了函数 c (在对象方法内 a.b )与 var关键字和仍然this函数内部 c绑定(bind)到全局对象 window .这是为什么?

var a = {
b: function () {
var c = function () {
return this;
};
return c();
}
};

document.write(a.b()); //prints: [object Window]

最佳答案

this 的值由上下文决定,而不是范围。

当你在没有任何上下文(context.func())的情况下调用函数(c())时,默认上下文是默认对象(在浏览器中是 window),除非你处于严格模式(在这种情况下它是 undefined)。

(此规则有异常(exception),例如applycallbindnew 但它们都不适用于此处)。

关于javascript - 为什么此功能附加到全局上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17133463/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com