Javascript - Zuweisen mehrerer Variablen zu Objekteigenschaften mit geschweiften Klammern in der Variablendeklaration

Während ich mir einen Javascript-Code für Mozillas (Firefox) Add-on-SDK ansah, sah ich eine Art Variablendeklaration, die ich vorher noch nicht gesehen hatte:

<code>var { foo, bar } = someFunction("whatever");  // just an example
</code>

Sehen Sie diese geschweiften Klammern um den Variablennamen? Es stellt sich heraus, dass dies eine Möglichkeit ist, die Werte von Eigenschaften eines Objekts mehreren Variablen gleichzeitig zuzuweisen. Es scheint ähnlich zuZerstörungsauftrag oder PHP'slist, außer mit Objekteigenschaften anstelle von Arrays.

Ich habe das tatsächlich durch ein bisschen Fummeln herausgefunden, da es anscheinend keine Dokumentation darüber gibt. Sehen Sie sich diesen Code an:

<code>function gimmeAnObject() {
    return {
        foo: "hey",
        bar: "sup"
    };
}

console.log(gimmeAnObject()); // Object { foo="hey", bar="sup" }

var { foo, bar } = gimmeAnObject();

console.log(foo); // hey
console.log(bar); // sup
</code>

Ich habe auch festgestellt, dass dies nur in Firefox funktioniert. Chrome wird stattdessen einen Fehler auslösen: "Nicht erfasster Syntaxfehler: Unerwartetes Token {". Das erklärt, warum ich es nicht gesehen hatte, bevor ich mich mit dem Firefox - Add - On - Code befasste.

Hat jemand diese Art der Variablendeklaration schon einmal gesehen? Warum kann ich keine Dokumentation finden? Da es nur in Firefox funktioniert, würde ich denken, dass es eine Mozilla-Sache ist, aber ich konnte im MDN nicht einmal etwas darüber finden. Andererseits wusste ich vielleicht einfach nicht, wonach ich suchen sollte.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage