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