为什么这指向以下js代码中的空对象?

时间:2017-05-06 17:13:29

标签: javascript this

我认为这会指向对象人,但它实际上指向一个空对象。谁能解释一下?

var person = {
    name: 'James',
    birthYear: '1991',
    getAge: () => new Date().getFullYear() - this.birthYear // this points to an empty object here. test in nodejs.
}

1 个答案:

答案 0 :(得分:0)

如果您使用箭头功能,那么您将引用全局'this'。

这样:

getAge: () => new Date().getFullYear() - this.birthYear

与此不同:

getAge: function() {
          new Date().getFullYear() - this.birthYear
        }

看看这里:https://developer.mozilla.org/it/docs/Web/JavaScript/Reference/Functions_and_function_scope/Arrow_functions