Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在javascript中使用var{VariableName}=require(';';)?_Javascript_Firefox_Coding Style_Firefox Addon Sdk - Fatal编程技术网

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

为什么在javascript中使用var{VariableName}=require(';';)?,javascript,firefox,coding-style,firefox-addon-sdk,Javascript,Firefox,Coding Style,Firefox Addon Sdk,我在Firefox中看到过很多示例,它们在声明变量时使用以下样式 var { Hotkey } = require("sdk/hotkeys"); 使用var{Hotkey}与使用var Hotkey有什么区别?为什么要使用额外的花括号?这是 相当于: var Hotkey = require('sdk/hotkeys').Hotkey; 另见提案,其中包括以下示例: // object destructuring var { op: a, lhs: b, rhs: c } = getAST

我在Firefox中看到过很多示例,它们在声明变量时使用以下样式

var { Hotkey } = require("sdk/hotkeys");
使用
var{Hotkey}
与使用
var Hotkey
有什么区别?为什么要使用额外的花括号?

这是

相当于:

var Hotkey = require('sdk/hotkeys').Hotkey;
另见提案,其中包括以下示例:

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

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

我不了解我自己,但这可能会给你一些信息:我熟悉CoffeeScript的概念:。我相信ECMAScript可能会采用类似的东西(这就是为什么它可能已经出现在Firefox插件中的原因)。谢谢。破坏任务听起来很有趣。然而,我没有看到类似的例子,比如
var{Hotkey}=require('sdk/Hotkey')在您指向的文档链接中。
var{op:a}=getASTNode()
相当于
var a=getASTNode().op
。“:”左侧的标记是属性名,“:”右侧的标记是变量名。但是,人们通常希望在这两种情况下使用相同的名称,如
var{Hotkey:Hotkey}=require('sdk/hotkeys')
。因为这是一种常见的模式,所以有一个缩写:
var{Hotkey}=require('sdk/hotkeys')
。在Mozilla增强版的JS中,解构已经存在了很长一段时间了——有许多特定于Mozilla的JS扩展,它们也正在找到协调的方法,比如数组理解和生成器。
// object destructuring
var { op: a, lhs: b, rhs: c } = getASTNode()

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