箭头函数 不能用来写
对象方法
,因为它屏蔽了this
的词法封闭环境, 在箭头函数中的this
是当前定义这个object所在的上下文
// `this` is here
var chopper = {
owner: 'Mary',
getOwner: () => {
return this.owner; // 此处的this指向当前chopper对象所在的上下文
}
};
如果你想在object中定义方法,可以使用传统函数语法或es6的简写
// 传统函数语法
var chopper = {
owner: 'Mary',
getOwner: function() {
return this.owner;
}
};
// or es6 语法
var chopper = {
owner: 'Mary',
getOwner() {
return this.owner;
}
};
参考:
Method_definitions
methods-in-es6-objects-using-arrow-functions