在ES6中,这两个都是合法的:
var chopper = {
owner: 'Zed',
getOwner: function() { return this.owner; }
};
并且,作为速记:
var chopper = {
owner: 'Zed',
getOwner() { return this.owner; }
}
是否可以使用新的箭头功能?在尝试类似
var chopper = {
owner: 'John',
getOwner: () => { return this.owner; }
};
要么
var chopper = {
owner: 'John',
getOwner: () => (this.owner)
};
我收到一条错误消息,提示该方法无权访问this
。这仅仅是语法问题,还是不能在ES6对象中使用胖管道方法?
this
区别对待。它是由创建函数的词法环境定义的,这意味着this
创建chopper
变量的this
值将是函数的值。换句话说,它不会引用该chopper
对象。