我已经阅读了一些有关箭头函数的主题,但以下代码仍然让我感到困惑。
var bunny = {
name: 'Usagi',
tasks: ['transform', 'eat cake', 'blow kisses'],
first : () => {
console.log(this) //does not refer to bunny
},
second: function(){
console.log(this) //refers to bunny
},
third() {
this.tasks.forEach((task) => {
console.log(this); //refers to bunny
});
}
};
bunny.first();
bunny.second();
bunny.third();
有人能告诉我为什么第三个函数的内部函数中this指向当前对象,而第一个函数不是吗?难道我们使用箭头函数时,this指的是定义它的当前作用域吗?
this
,因此它从其外部作用域获取它,就像它会获取一个未在自身内定义的普通变量一样。 - user1106925this
上下文不是构造的对象。 - Bergi