При взгляде на некоторый код Javascript для SDK надстройки Mozilla (Firefox) я видел вид объявления переменных, которого я раньше не видел:
var { foo, bar } = someFunction("whatever"); // just an example
Посмотрите на фигурные скобки вокруг имени переменной? Оказывается, это способ назначения значений свойств объекта нескольким переменным одновременно. Это похоже на назначение деструктурирования или PHP list
, за исключением свойств объекта вместо массивов.
Я на самом деле нашел это через какую-то ворчание, поскольку на нем, похоже, нет документации. Взгляните на этот код:
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
Я также обнаружил, что это работает только в Firefox. Вместо этого Chrome выведет ошибку: "Uncaught SyntaxError: Неожиданный токен {". Это объясняет, почему я не видел его до того, как начал изучать дополнительный код Firefox.
Кто-нибудь еще видел такое объявление переменной раньше? Почему я не могу найти документацию? Поскольку он работает только в Firefox, я думаю, что это может быть Mozilla, но я даже не мог найти ничего об этом на MDN. Опять же, может быть, я просто не знал, что искать.