Cats萌萌
2019-05-30 10:55:33
方法在ES6對象中:使用箭頭函數在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對象中使用FAT管道方法?
3 回答

紫衣仙女
TA貢獻1839條經驗 獲得超15個贊
在這一行getOwner: => (this.owner)應:
var chopper = {
owner: 'John',
getOwner: () => this.owner
}; //here `this` refers to `window` object.
你必須聲明this變成一種功能:
var chopper = {
owner: 'John',
getOwner() { return this.owner }
};
或:
var chopperFn = function(){
this.setOwner = (name) => this.owner = name;
Object.assign(this,{
owner: 'Jhon',
getOwner: () => this.owner,
})
}
var chopper = new chopperFn();
console.log(chopper.getOwner());
chopper.setOwner('Spiderman');
console.log(chopper.getOwner());
添加回答
舉報
0/150
提交
取消