Mientras observa algo de código Javascript de Mozilla (Firefox) Add-on SDK, vi declaración de tipo de variables que no había visto antes:Javascript - La asignación de múltiples variables a las propiedades de objetos que se utilizan llaves de declaración de variables
var { foo, bar } = someFunction("whatever"); // just an example
¿Ves esas llaves alrededor del nombre de la variable? Resulta que esta es una forma de asignar los valores de las propiedades de un objeto a múltiples variables, todas a la vez. Parece similar a destructuring assignment o PHP list
, excepto con propiedades de objeto en lugar de matrices.
De hecho, descubrí esto mediante algunos ajustes, ya que parece que no hay documentación sobre el mismo. Eche un vistazo a este código:
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
También encontré que esto solo funciona en Firefox. Chrome arrojará un error en su lugar: "Untaught SyntaxError: Token inesperado {". Eso explica por qué no lo había visto antes de empezar a buscar el código adicional de Firefox.
¿Alguien más ha visto este tipo de declaración de variables anteriormente? ¿Por qué no puedo encontrar documentación sobre esto? Como solo funciona en Firefox, creo que podría ser una cosa de Mozilla, pero ni siquiera pude encontrar nada al respecto en MDN. Por otra parte, tal vez simplemente no sabía qué buscar.
posible duplicado de [Constante declaración con bloque] (http://stackoverflow.com/questions/10199229/constant-declaration-with-block) –
Encontré esta pregunta mientras redactaba una pregunta casi idéntica :) – Motti