Javascript: Asignación de múltiples variables a propiedades de objetos usando llaves en la declaración de variables

Mientras miraba un código Javascript para el SDK de Mozilla (Firefox), vi una especie de declaración de variable que no había visto antes:

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

¿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 a la vez. Parece similar atarea de desestructuración o PHP'slist, excepto con propiedades de objeto en lugar de matrices.

De hecho, descubrí esto a través de algunos problemas, ya que parece que no hay documentación al respecto. Echa un vistazo a este código:

<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>

También encontré que esto solo funciona en Firefox. Chrome en su lugar lanzará un error: "SyntaxError no detectada: fichas inesperado {". Eso explica por qué no lo había visto antes de comenzar a buscar el código del complemento de Firefox.

¿Alguien más ha visto este tipo de declaración de variable antes? ¿Por qué no puedo encontrar ninguna documentación sobre él? Como solo funciona en Firefox, creo que podría ser una cuestión de Mozilla, pero no pude encontrar nada al respecto en MDN. Por otra parte, tal vez simplemente no sabía qué buscar.

Respuestas a la pregunta(2)

Su respuesta a la pregunta