我知道箭头函数没有自己的“ this”,而是借用了其所包围的词法范围的“ this”。
const person = {
points: 23,
score: () => {
this.points++;
}
};
为什么person.score
给我未定义的箭头功能,它应该可以访问它?
答案 0 :(得分:1)
箭头功能没有自己的此功能。由于箭头功能没有与之关联的this
,因此它使用父级的this
。
在您的示例中,此内部人员将指向父对象,并且该对象对象的父对象是Window。因此,this
指向封闭范围,而不是人员对象。在您的情况下,这绑定到全局对象。您可以看到this
的内容显示在下面(“窗口”对象)。
const person1 = {
points: 23,
score: function(){
console.log(this);
}
};
// this in score function will point to person1
person1.score();
const person2 = {
points: 23,
score: () => {
console.log(this);
}
};
// here, this will point to global object
person2.score();