2016-04-27 167 views
2

中指定此我試圖合併從valuesthis的道具。不能在構造函數

以下引發錯誤。我怎樣才能做到這一點?

this = {...this, ...values} 
+0

我認爲這是試圖創建一個新的對象,並將其分配給'this',而不是將屬性合併到'this'中。 – Barmar

+0

'this'是一個保留的javascript字,不能被覆蓋,是否嘗試過使用不同的var名稱? – Derek

+1

'這是'不可分配的。你真的想要做什麼? – Amit

回答

8

您可以用Object.assign方法延長this

class Foo { 
    constructor (props) { 
    Object.assign(this, props); 
    } 
} 

const foo = new Foo({ a: 1 }); 
console.log(foo.a); // 1 
1

看到你的蔓延運營商的使用,它看起來像您使用的是ECMAScript的一個第3階段的建議。

https://github.com/tc39/proposal-object-rest-spread

嘗試Object.assign方法:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign

的Object.assign()方法被用於所有可枚舉自己的屬性的值從一個或多個源對象複製到一個目標對象。它會返回目標對象。

Object.assign(目標...源);