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