einzuwenden Während bei einigen Javascript-Code für Mozilla (Firefox) Add-on SDK suchen, ich Art von Variablendeklaration gesehen hatte ich nicht gesehen vor:Javascript - mehrere Variablen zuweisen Eigenschaften mit geschweiften Klammern in Variablendeklaration
var { foo, bar } = someFunction("whatever"); // just an example
Sehen Sie diese geschweiften Klammern um den Variablennamen? Es stellt sich heraus, dass auf diese Weise die Werte von Eigenschaften eines Objekts gleichzeitig mehreren Variablen zugewiesen werden können. Es ähnelt destructuring assignment oder PHP list
, außer mit Objekteigenschaften anstelle von Arrays.
Ich fand dies tatsächlich durch ein bisschen herumfummeln, da es keine Dokumentation darüber zu geben scheint. Sehen Sie sich diesen Code an:
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
Ich fand auch, dass dies nur in Firefox funktioniert. Chrome wird stattdessen einen Fehler ausgeben: "Uncaught SyntaxError: Unerwartetes Token {". Das erklärt, warum ich es noch nicht gesehen habe, bevor ich angefangen habe, den Firefox-Add-On-Code zu betrachten.
Hat sonst noch jemand diese Art von Variablendeklaration gesehen? Warum kann ich keine Dokumentation darüber finden? Da es nur in Firefox funktioniert, würde ich denken, es könnte eine Mozilla-Sache sein, aber ich konnte nicht einmal etwas darüber auf MDN finden. Andererseits wusste ich vielleicht nicht, wonach ich suchen sollte.
möglich Duplikat [Konstante Erklärung mit Block] (http://stackoverflow.com/questions/10199229/constant-declaration-with-block) –
diese Frage gefunden, während eine fast identische Frage meiner eigenen Komposition :) – Motti