gpt4 book ai didi

javascript - 为什么箭头函数的 'this' 在嵌套对象字面量中没有变化?

转载 作者:数据小太阳 更新时间:2023-10-29 04:34:35 26 4
gpt4 key购买 nike

<分区>

我发现在嵌套对象文字中使用箭头函数时,“this”关键字似乎总是指向 global

根据其他问题,以下代码片段可以解释为箭头函数的“this”是在词法上下文中定义的。

var c = 100;
var a = {c:5 , fn: () => {return this.c;} };
console.log(a.c); //100

但是,我无法理解以下代码(嵌套对象字面量):

var c = 100;

var a = {
c: 5,
b: {
c: 10,
fn: ()=> {return this.c;}
}
}

console.log(a.b.fn());// still 100, why not 5?

我的意思是,如果从词法上下文方面考虑,a.b.fn中的'this'不应该指向a吗?

为什么无论对象嵌套了多少层,所有的“this”实例都指向窗口或全局?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com