箭头函数此行为 [复制]

Arrow function this behaviour [duplicate]

提问人:Indrajeet 提问时间:7/16/2023 更新时间:7/16/2023 访问量:35

问:

示例 1

const obj = {
  perimeter: () => {
    console.log(this); // this points to window
  }
}

obj.perimeter()

const obj = {
    sing(){
    console.log(this);
    const b = () =>{
        console.log(this); // this points to obj
    }
    b();
  }
}

obj.sing()

箭头函数这个点词法范围,为什么第一个输出是不同的?

箭头函数这个点词法范围,为什么第一个输出是不同的?

javascript typescript 这个 箭头函数

评论

1赞 Robin Zigmond 7/16/2023
在第二个示例中,词法作用域是方法,该方法在调用时(如您所做的那样)为 。在第一个示例中,周围的范围是全局范围,因此这就是将全局对象获取为 .singthisobjobj.sing()windowthis
0赞 Indrajeet 7/16/2023
多亏了@RobinZigmond

答:

-2赞 Deniz 7/16/2023 #1

因为箭头没有上下文。JavaScript 箭头函数this