Mentre si guarda a un certo codice Javascript per di Mozilla (Firefox) Add-on SDK, ho visto la dichiarazione tipo di variabili che non avevo mai visto prima:Javascript - Assegnazione di più variabili di opporsi proprietà utilizzando parentesi graffe in dichiarazione di variabili
var { foo, bar } = someFunction("whatever"); // just an example
Vedere le parentesi graffe attorno al nome della variabile? Risulta, questo è un modo di assegnare i valori delle proprietà di un oggetto a più variabili tutte in una volta. Sembra simile a destructuring assignment o PHP list
, ad eccezione delle proprietà dell'oggetto invece degli array.
In realtà ho trovato questo fuori attraverso alcuni giocherellando, poiché non sembra esserci alcuna documentazione su di esso. Date un'occhiata a questo codice:
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
Ho anche scoperto che funziona solo in Firefox. Chrome genererà invece un errore: "Uncaught SyntaxError: token imprevisto {". Questo spiega perché non l'avevo visto prima di iniziare a guardare il codice add-on di Firefox.
Qualcun altro ha mai visto questo tipo di dichiarazione delle variabili prima? Perché non riesco a trovare alcuna documentazione su di esso? Dal momento che funziona solo su Firefox, penso che potrebbe essere una cosa di Mozilla, ma non ho potuto trovare nulla su di esso su MDN. Poi di nuovo, forse non sapevo cosa cercare.
possibile duplicato di [Dichiarazione costante con blocco] (http://stackoverflow.com/questions/10199229/constant-declaration-with-block) –
Trovato questa domanda durante la composizione di una domanda quasi identica a me :) – Motti