javascript - "var { someName } = require(' 某事')"是什么意思?

标签 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 } =

这里发生了什么?

最佳答案

您正在目睹 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 }

关于javascript - "var { someName } = require(' 某事')"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32256855/

相关文章:

javascript - 检查 IFrame 是否嵌入在另一个站点上

javascript - 是否有适合 Javascript 1.7 尤其是 Firefox 扩展的编译器/压缩器库?

javascript - 在 angular2 中制作我自己的记录器

javascript - Babel 已经做了 Object.create(superClass.prototype) 为什么还要用 setPrototypeOf 来继承?

javascript - 当 promise 在 Redux 中间件内解析时,为什么我无法调度操作?

javascript - 设置 Protractor 的conf文件以使用自定义报告器

javascript - 如何使用 react 中的下一个和上一个按钮将日期增加和减少 1 天?

javascript - 跨域 TinyMCE

用于浏览器扩展的 Java 后端(Firefox 附加组件)

python - 在 Firefox 的右键菜单中添加选项