当我把它放在对象中时,箭头函数不起作用,调用后的结果是NaN

Dew*_*awa 4 javascript

var mySelf = {
  name: "dina",
  job: "Programmer",
  yearOfBirth: 1993,
  age: () => 2019 - this.yearOfBirth
};

let result = mySelf.age();

console.log(result);
Run Code Online (Sandbox Code Playgroud)

结果是 NaN

请帮帮我实际发生了什么?

Kar*_*rim 5

箭头函数继承外部上下文(Window在本例中)而不是对象上下文,而是使用普通函数.

var mySelf = {
  name: "dina",
  job: "Programmer",
  yearOfBirth: 1993,
  age: function() { return 2019 - this.yearOfBirth }
};
    
let result = mySelf.age();
    
console.log(result);
Run Code Online (Sandbox Code Playgroud)

显示箭头函数接收词汇this-

const o =
  { func: () => this === window }
  
console.log(o.func()) // true
Run Code Online (Sandbox Code Playgroud)