Ответ 1
Это новая функция JavaScript 1.7, называемая Назначение деструктурирования:
Назначение деструктуризации позволяет извлекать данные из массивов или объектов, используя синтаксис, который отражает конструкцию массива и объектных литералов.
Литеральные выражения объектов и массивов предоставляют простой способ создания специальных пакетов данных. Создав эти пакеты данных, вы можете использовать их так, как хотите. Вы даже можете вернуть их из функций.
Одна полезная вещь, которую вы можете сделать с назначением деструктуризации, - это прочитать целую структуру в одном выражении, хотя с ними можно сделать несколько интересных вещей, как показано в разделе, полном следующих примеров.
Вы можете использовать назначение деструктуризации, например, для замены значений:
var a = 1; var b = 3; [a, b] = [b, a];
Эта возможность похожа на функции, присутствующие в таких языках, как Perl и Python.
К сожалению, согласно этой таблице версий, JavaScript 1.7 не был реализован в Chrome. Но он должен быть там:
- FireFox 2.0 +
- IE 9
- Опера 11.50.
Попробуйте сами в этом jsfiddle: http://jsfiddle.net/uBReg/
Я тестировал это в Chrome (не удалось), IE 8 (не удалось) и FireFox 5 (который работал в таблице wiki).