首页 > 解决方案 > 当我把它放在对象里面时,箭头函数不起作用,调用后的结果是NaN

问题描述

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

let result = mySelf.age();

console.log(result);

结果是NaN

请帮助我到底发生了什么?

标签: javascript

解决方案


箭头函数继承封闭上下文(Window在这种情况下)而不是对象上下文,而是使用普通函数。

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

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

const o =
  { func: () => this === window }
  
console.log(o.func()) // true


推荐阅读