Что это за синтаксис JavaScript: {Ci, CC}?

Я делаю надстройку надстройки FF, и я вижу синтаксис вроде этого:

var {Cc, Ci} = require('chrome');

Просто интересно, что это за синтаксис, и если он особенный для разработки FF или что-то еще.

Ответы

Ответ 1

См. Доменический ответ о том, что такое синтаксис, который называется назначением деструктурирования. Следующий ответ объясняет, почему это необходимо для разработки надстройки FF.

Там обсуждается, что это такое и почему это необходимо в http://groups.google.com/group/mozilla-labs-jetpack/browse_thread/thread/d288b79903b5b434.

Короткий ответ - да, он специфичен для разработки дополнений Firefox. Соответствующую документацию можно найти на https://addons.mozilla.org/en-US/developers/docs/sdk/1.3/dev-guide/module-development/chrome.html.

Ответ 2

Это называется назначением деструктуризации. Это особенность JavaScript 1.7, где в этом контексте "JavaScript" относится к определенным расширениям Mozilla к стандарту ECMAScript.

Предполагается включение в следующую версию JavaScript.

Эквивалентный код ECMAScript 5 будет

var __temp = require('chrome');
var Cc = __temp.Cc;
var Ci = __temp.Ci;