什么“var {someName} = require('something')”是什么意思?

时间:2015-08-27 18:25:20

标签: javascript firefox-addon ecmascript-6

我正在阅读关于firefox插件的MDN文档,我看到了一些我不理解的语法 在其中一个例子中,他们说:

var { ToggleButton } = require('sdk/ui/button/toggle');
var panels = require("sdk/panel");
var self = require("sdk/self");

var button = ToggleButton({
  ...
});

为什么大括号内的变量名称为var { ToggleButton } =

这里发生了什么?

1 个答案:

答案 0 :(得分:2)

您正在见证使用称为解构的新ES 2015功能。

参考:https://github.com/lukehoban/es6features#destructuring

Firefox支持使用对象进行解构: https://kangax.github.io/compat-table/es6/#destructuring_with_objects

<强>更新

这是证明。 ToggleButton模块导出ToggleButton对象: https://github.com/mozilla/addon-sdk/blob/master/lib/sdk/ui/button/toggle.js#L79

根据ES 2015解构规则,它会被正确地解构为{ ToggleButton }