我正在阅读关于firefox插件的MDN文档,我看到了一些我不理解的语法 在其中一个例子中,他们说:
var { ToggleButton } = require('sdk/ui/button/toggle');
var panels = require("sdk/panel");
var self = require("sdk/self");
var button = ToggleButton({
...
});
为什么大括号内的变量名称为var { ToggleButton } =
?
这里发生了什么?
答案 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 }
。