了解JavaScript对象分配的顺序

时间:2015-01-29 02:24:13

标签: javascript

在查看来自各种Firefox扩展的JavaScript时,我看到了类似以下的代码来创建别名(example):

let Cc = Components.classes;
let Ci = Components.interfaces;
let Cu = Components.utils;

这对我有意义。但是,我看到了这个代码的奇怪外观,看起来像这样(from this example):

let { classes: Cc, interfaces: Ci, utils: Cu } = Components;

我不完全理解这个赋值语句。我相信最终结果与前一代码块基本相同,但为什么呢?正在为匿名对象分配值Components,对吗?我以前从未见过像这样的作业类型,所以对我来说没什么意义。

我查看了MDN上的Values, variables, and literals页面和let的文档,但是这两个页面都没有任何此类构造的示例。

1 个答案:

答案 0 :(得分:1)

第二种形式是ECMAScript6的一个新特性,称为解构赋值。由于缺乏支持,你不会在开放的网络中看到它,但你可以在node.js或firefox / addon内部运行的一些代码中找到它。 或者通过es6到es5转换器运行的东西。

有关详细信息,请参阅MDN docs