对象内部的“this”是 Window [duplicate]

`this` inside object is Window [duplicate]

提问人:theredled 提问时间:3/21/2023 更新时间:3/21/2023 访问量:32

问:

我知道有些问题看起来像这个问题,但我的上下文看起来要简单和奇怪得多:

我有这个对象:

        const obj = {
            fn: () => {
                console.log('obj', this);
            }
        }
        obj.fn();

它正在记录对象。Windowobj

我以前从未遇到过这种情况,看起来很奇怪,最近几个月 ECMAScript 和箭头函数有什么变化吗?猜不猜,但你永远不知道...... 对我来说毫无意义,但我可能错过了一些东西......

JavaScript 作用域

评论

0赞 katniss 3/21/2023
箭头函数自引入以来从未有过上下文。什么都没有改变。this
0赞 theredled 3/21/2023
天哪,我已经6个月没工作了,我已经忘记了......谢谢
0赞 ChrisSc 3/21/2023
这似乎在 stackoverflow.com/questions/15831509/ 之前就已经得到了答案......
0赞 theredled 3/21/2023
@ChrisSc不一样,这个家伙正在调用另一个函数中定义的函数,并且它没有箭头函数。

答:

-1赞 ΑΓΡΙΑ ΠΕΣΤΡΟΦΑ 3/21/2023 #1
const obj = {
   fn() {
      console.log('obj', this)
   }
}
obj.fn();

输出: obj 对象 { fn: fn() }

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions