
为何在匿名函数中 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
微信扫一扫
支付宝扫一扫