2015-09-05 16 views
13

Das mag sich lächerlich anhören, aber ertragen Sie mit mir. Ich frage mich, ob es eine Unterstützung auf der Sprachebene gibt, um ein Objekt in Klasseneigenschaften im Konstruktor zu destrukturieren, z.ES6 Destrukturierung im Klassenkonstruktor

+0

Wenn Sie 'fullname' Änderungen in' firstname' zu ​​behalten und 'lastname' ein Getter https: //developer.mozilla. org/de-DE/docs/Web/JavaScript/Referenz/Funktionen/get – Jan

+0

@Jan richtig danke. Tut mir leid, es war ein schlechtes Beispiel. Ich will nur zeigen, dass nach 'firstname' und' lastname' mehr Initialisierungen stattfinden, wenn das Sinn macht. –

+0

'this' kann nicht zugewiesen werden - in ES5 niemals, in ES6 ändert sich nur der Wert" super() ". Informationen zum Zuweisen von Eigenschaften finden Sie im Duplikat. – Bergi

Antwort

19

Sie können this nirgendwo in der Sprache zuweisen.

Eine Option ist in this oder ein anderes Objekt zu verschmelzen:

constructor(human) { 
    Object.assign(this, human); 
} 
+1

Prost. Ich weiß, dass wir das nicht zuordnen können, aber auf etwas Ähnliches gehofft haben. Ich war sehr daran interessiert, das Destrukturieren zu verwenden, weil es ein klares Schema hat, d.h. mir sagt, welche Eigenschaften zugewiesen werden. Aber trotzdem, danke für die Antwort. –

+1

Oder vielleicht brauchen Sie das? Konstruktor ({Vorname, Nachname}) { Object.assign (this, {firstname, lastename}); this.fullname = '$ {this.firstname} $ {this.lastname}'; } – r03

+0

@ r03 hast du diese lösung ausprobiert? Es funktioniert tatsächlich? –

Verwandte Themen