JavaScript (ES6) const with curedes

2022-08-30 03:02:42

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

const {
  abc,
  def
} = Object;

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

此代码是什么意思?

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

"use strict";

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

我仍然对这试图实现的目标感到困惑。


答案 1

这是一个解构任务。具体而言,是对象解构赋值。

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

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;

答案 2