JavaScript (ES6)使用大括号

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

const {
abc,
def
} = Object;

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

这个代码是什么意思?

我将这段代码片段粘贴到 巴别塔的传送器,它返回的结果如下:

"use strict";


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

我还是不明白这到底是为了什么。

60740 次浏览

这是 破坏性转让特别是 物体解构物体解构任务。

以更详细的方式重写可能会有所帮助。

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

这是一种从对象属性初始化变量的速记方法。

const name = app.name;
const version = app.version;
const type = app.type;


// Can be rewritten as:
const { name, version, type } = app;

你也可以对数组做同样的事情。

const a = items[0];
const b = items[1];
const c = items[2];


// Can be written as:
const [a, b, c] = items;