为什么在javascript中使用var {VariableName} = require('')?

时间:2013-02-13 07:14:38

标签: javascript firefox coding-style firefox-addon-sdk

我在Firefox addon-sdk中看到很多例子,它们在声明变量时使用了以下样式。

var { Hotkey } = require("sdk/hotkeys");

var { Hotkey }与使用var HotKey有何不同?为什么要使用额外的花括号?

1 个答案:

答案 0 :(得分:14)

这是destructuring assignment

var {Hotkey} = require('sdk/hotkeys');

相当于:

var Hotkey = require('sdk/hotkeys').Hotkey;

另请参阅harmony:destructuring提案,其中包括以下示例:

// object destructuring
var { op: a, lhs: b, rhs: c } = getASTNode()

// digging deeper into an object
var { op: a, lhs: { op: b }, rhs: c } = getASTNode()