Подтвердить что ты не робот

Javascript (ES6) const с фигурными фигурными скобками

Я новичок в ECMAScript 6, и, пытаясь изучить Ember, я иногда видел следующий стиль кода:

const {
  abc,
  def
} = Object;

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

Что означает этот код?

UPDATE

Я вставлял этот фрагмент в Babel transpiler, и вот что он ответил:

"use strict";

var abc = Object.abc;
var def = Object.def;

Я все еще смущен тем, что это пытается сделать.

4b9b3361

Ответ 1

Это назначение деструкции ES2015 .

Это может помочь увидеть, что оно переписано более подробным образом.

const abc = Object.abc;
const def = Object.def;

Это синтаксически сложный способ извлечения свойств из объектов в переменные.

// you can rewrite this
const name = app.name;
const version = app.version;
const type = app.type;

// as this
const { name, version, type } = app;

Поставщики браузеров все еще реализуют спецификацию ES2015, что, вероятно, не работает в вашем браузере.

Однако существует проект под названием Babel, который позволяет вам преобразовывать будущие спецификации Javascript в ES5. Вы можете попробовать код ES2015 в их REPL.