
为何在匿名函数中 this 指向 window
在 javascript 中,this 关键字代表当前执行环境中的对象。但是,在匿名函数中,this 的指向可能会出乎意料。
在给定的代码示例中:
var obj = {
x: 100,
y: function () {
setTimeout(
function () { alert(this.x); }, // 这里的 this 指向window对象,而不是obj
2000
);
}
};
obj.y();匿名函数 function () { alert(this.x); } 没有绑定到 obj 对象。因此,执行时,this 指向全局作用域(也就是 window 对象),而不是 obj。
这解释了为什么 alert(this.x) 输出 undefined,因为 window 对象没有 x 属性。
原因
匿名函数不是绑定到特定对象的,这意味着 this 指向 window,除非在严格模式下执行(在严格模式下,this 为 undefined)。
这是因为匿名函数的执行环境是全局性的,而全局作用域中的 this 总指向 window 对象。
以上就是为什么匿名函数中的 `this` 指向 `window`?的详细内容,更多请关注php中文网其它相关文章!
Windows激活工具是正版认证的激活工具,永久激活,一键解决windows许可证即将过期。可激活win7系统、win8.1系统、win10系统、win11系统。下载后先看完视频激活教程,再进行操作,100%激活成功。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号