2016-04-27 7 views
2

Ich versuche, die Requisiten von values in this zusammenzuführen.Kann nicht im Konstruktor zugewiesen werden

Folgendes führt zu einem Fehler. Wie kann ich das machen?

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

Ich denke, dass versucht, ein neues Objekt zu erstellen und es zu 'this' zuzuweisen, nicht Eigenschaften in' this' zu verschmelzen. – Barmar

+0

'this' ist ein reserviertes Javascript-Wort und kann nicht überschrieben werden. Haben Sie versucht, einen anderen var-Namen zu verwenden? – Derek

+1

'this' ist nicht zuordenbar. Was versuchst du wirklich? – Amit

Antwort

8

Sie this mit Object.assign Methode erweitern konnte:

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

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

Ihre Nutzung der Verbreitung Betreiber sehen, es sieht aus wie Sie eine Stufe 3 Vorschlag für ECMAScript verwenden.

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

Versuchen Sie, die Object.assign Methode:

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

Die Object.assign() -Methode verwendet, um die Werte aller enumerable eigenen Eigenschaften von einem oder mehreren Quellobjekte zu kopieren ein Zielobjekt Es wird das Zielobjekt zurückgeben.

Object.assign (Ziel, ... Quellen);

Verwandte Themen