JavaScript - Przypisywanie wielu zmiennych do właściwości obiektu przy użyciu nawiasów klamrowych w deklaracji zmiennej

Patrząc na kod JavaScript dla pakietu SDK Mozilli (Firefox), zobaczyłem rodzaj deklaracji zmiennej, której wcześniej nie widziałem:

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

Zobacz nawiasy klamrowe wokół nazwy zmiennej? Okazuje się, że jest to sposób przypisywania wartości właściwości obiektu do wielu zmiennych jednocześnie. Wydaje się podobne doprzypisanie destrukcji lub PHPlist, z wyjątkiem właściwości obiektu zamiast tablic.

Właściwie to odkryłem przez jakieś skrzypienie, ponieważ wydaje się, że nie ma na nim żadnej dokumentacji. Spójrz na ten kod:

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

Odkryłem również, że działa to tylko w Firefoksie. Chrome zamiast tego zgłosi błąd: „Nieprzechwycony SyntaxError: Nieoczekiwany token {„. To wyjaśnia, dlaczego nie widziałem go, zanim zacząłem patrzeć na kod dodatku Firefox.

Czy ktoś jeszcze widział tego rodzaju deklarację zmiennych wcześniej? Dlaczego nie mogę znaleźć na nim żadnej dokumentacji? Ponieważ działa tylko w Firefoksie, myślę, że może to być Mozilla, ale nie mogłem nawet niczego o tym dowiedzieć na MDN. Z drugiej strony, może po prostu nie wiedziałem, czego szukać.

questionAnswers(2)

yourAnswerToTheQuestion