Javascript 关键字“quot;这";使用箭头函数?

Javascript 关键字“quot;这";使用箭头函数?,javascript,Javascript,我知道arrow函数没有自己的“this”,借用了其封闭词法范围的“this” const person = { points: 23, score: () => { this.points++; } }; 为什么person.score给我未定义的,作为一个箭头函数,它应该可以访问这个?箭头函数没有自己的这个函数。由于箭头函数没有与其关联的this,因此它使用父函数的this 在您的示例中,该内部人员将指向父对象,并且人员对象的父对象是Window。因此

我知道arrow函数没有自己的“this”,借用了其封闭词法范围的“this”

const person = {
    points: 23,
    score: () => {
      this.points++;
  }
};

为什么
person.score
给我未定义的,作为一个箭头函数,它应该可以访问这个?

箭头函数没有自己的这个函数。由于箭头函数没有与其关联的
this
,因此它使用父函数的
this

在您的示例中,该内部人员将指向父对象,并且人员对象的父对象是Window。因此,
this
指向封闭范围,而不是person对象。在您的例子中,这是绑定到全局对象的。您可以看到下面打印的
的内容(窗口对象)

const person1={
分:23分,
分数:函数(){
console.log(this);
}
};
//此in-score函数将指向person1
person1.score();
const person2={
分:23分,
分数:()=>{
console.log(this);
}
};
//这里,这将指向全局对象

person2.score()
在本例中,
this
获取与
窗口
对象相等的全局范围,它是不在任何其他范围块内的
person
对象。如果要获取
person
对象的引用,则必须编写
score:function(){}
,因为它是一个函数,不返回任何内容。