为什么匿名函数中的 `this` 指向 `window`?

为什么匿名函数中的 `this` 指向 `window`?

为何在匿名函数中 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`?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1496832.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月19日 18:56:53
下一篇 2025年12月19日 18:57:04

相关推荐

发表回复

登录后才能评论
关注微信