2016-10-12 2 views
2

Ich bin eigentlich für eine funktionierende Antwort suchen, ähnlich wie Destrukturierung (siehe https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment)Massen zuweisen, um mehr Javascript-Objekte

Aber ich habe diese Probe gesehen:

[a, b] = [1, 2]; 

Also ich habe gehofft, wenn es eine Möglichkeit gibt, Massen Zuordnung für mehrere Objekteigenschaften, wie dies zu tun:

this.[name, age, is_male] = [ 'John Doe', 22, true ]; 

um dies zu verkürzen:

Jeder Eingang würde sehr geschätzt werden.

+0

http://stackoverflow.com/questions/9713323/why-cant-i-assign-a-new-value-t o-dies-in-einem-Prototyp-Funktion # antwort-9713442 – 7urkm3n

Antwort

0

Sie können

this.[... 

nicht tun, da diese Sie eine

Uncaught SyntaxError: Unexpected token [

geben, aber Sie können die [] s verwenden this. -Werten zuweisen:

[this.name, this.age, this.is_male] = ['John Doe', 22, true]; 
+0

Funktioniert nicht :( –

+0

Verwenden Sie es aus einem Objekt heraus? Auf JSFiddle hat es perfekt funktioniert. – timmyRS

+0

Nein, aber es spuckt eine andere Nachricht: http://prntscr.com/ct2sct –

2

Object.assign wird TU das.

var obj = { 
 
    foo: 1, 
 
    copy: function() { 
 
    Object.assign(this, { 
 
     name: "John Doe", 
 
     age: 22, 
 
     is_male: true 
 
    }); 
 
    } 
 
} 
 

 
obj.copy(); 
 
console.log(obj);

3

Eine weniger-als-perfekte Option ist:

const [name, age, is_male] = ['John Doe', 22, true]; 
Object.assign(this, {name, age, is_male}); 

oder

Object.assign(this, 
    ([name, age, is_male]) => ({name, age, is_male}))(['John, Doe', 22, true])); 

Beides scheint besser als die drei Zuweisungsanweisungen.

Was Sie versuchen zu tun, in ein Objekt denaturiert, (in diesem Fall ein, dass Sie können assign zu this. Verschiedene Syntaxen haben dafür, wie

Object.assign(this, 
    { [name, age, is_male] = ['John Doe', 22, true] }); 

und

vorgeschlagen
Object.assign(this, 
    ['John Doe', 22, true].{name, age, is_male}); 

aber sie haben nicht viel Traktion in den Sprachstandards Prozess bekommen.