2015-01-29 3 views
1

Глядя на JavaScript из различных расширений Firefox, я видел код как следующее для создания псевдонимов (example):Понимание порядка JavaScript присвоения объекта

let Cc = Components.classes; 
let Ci = Components.interfaces; 
let Cu = Components.utils; 

Это имеет смысл для меня. Тем не менее, я видел странный взгляд вариант этого кода, который выглядит следующим образом (from this example):

let { classes: Cc, interfaces: Ci, utils: Cu } = Components; 

Я не совсем понимаю, это оператор присваивания. Я считаю, что конечный результат по существу тот же, что и прежний блок кода, но почему? Анонимному объекту присваивается значение Components, правильно? Я никогда не видел такого типа назначения, как раньше, поэтому для меня это мало смысла.

Я просмотрел страницу Values, variables, and literals на MDN и документацию для let, но ни одна страница не имела примеров такого типа конструкции.

+1

Назначение разрушения в ES6. – elclanrs

ответ

1

Вторая форма - это новая функция ECMAScript6, называемая назначением деструктуризации. Вы не увидите его в открытой сети из-за отсутствия поддержки, но можете найти его в каком-то коде, запущенном на узле.js или в внутренности firefox/addon. Или вещи, которые проходят через es6 на esp transpilers.

Для получения дополнительной информации см. MDN docs.

Смежные вопросы