带有花括号的Javascript(ES6)const

时间:2015-11-19 08:32:13

标签: javascript ember.js const ecmascript-6

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

const {
  abc,
  def
} = Object;

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

这段代码是什么意思?

更新

我将此代码段粘贴到Babel's transpiler,这就是它返回的内容:

"use strict";

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

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

1 个答案:

答案 0 :(得分:126)

这是ES2015 destructuring assignment

可能有助于看到它以更冗长的方式重写。

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;

浏览器供应商是still implementing ES2015规范,这可能是它无法在您的浏览器中运行的原因。

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