带有花括号的Javascript(ES6)const

tra*_*ton 76 javascript const ember.js ecmascript-6

我是ECMAScript 6的新手,在尝试学习Ember时,我偶尔会看到以下代码风格:

const {
  abc,
  def
} = Object;
Run Code Online (Sandbox Code Playgroud)

我搜索了谷歌和许多网站,解释了新的ES6规范.我知道这不是当前的实现,因为我输入时我的控制台出错了.

这段代码是什么意思?

UPDATE

我将这个片段粘贴到Babel的转换器中,这就是它返回的内容:

"use strict";

var abc = Object.abc;
var def = Object.def;
Run Code Online (Sandbox Code Playgroud)

我仍然对这是想要实现的目标感到困惑.

Dan*_*nce 144

这是ES2015的解构任务.

看到它以更冗长的方式重写可能会有所帮助.

const abc = Object.abc;
const def = Object.def;
Run Code Online (Sandbox Code Playgroud)

它是一种从对象中提取属性到变量的合成简洁方法.

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

// as this
const { name, version, type } = app;
Run Code Online (Sandbox Code Playgroud)

浏览器供应商仍在实施 ES2015规范,这可能是它在浏览器中无法运行的原因.

但是,有一个名为Babel的项目允许您将未来的Javascript规范转换回ES5.您可以在他们的REPL中试用ES2015代码.