使用关联数组作为变量名? - javascript

时间:2012-04-27 12:02:12

标签: javascript firefox firefox-addon associative-array

我正在查看来自firefox扩展的一些代码(这里:https://github.com/mozilla/prospector/blob/master/oneLiner/bootstrap.js#L34),我在javascript中看到了一些我以前从未见过的东西。程序员使用关联数组作为变量名。有人可以向我解释这个变量引用是如何工作的吗?

const {classes: Cc, interfaces: Ci, utils: Cu} = Components;

我从阅读此页面了解“const”:https://developer.mozilla.org/en/JavaScript/Reference/Statements/const

但是如何将关联数组对象用作变量名?

此外,它似乎在关联数组中使用键名作为对Components方法的引用(在此列出:https://developer.mozilla.org/en/Components_object)。我一直认为一个关键名称必须首先然后是值,但这似乎首先将引用的值放入Components类方法,然后将其指定为Cc的名称,即使Cc位于值的位置会去(和Ci为Components接口方法& Cu为组件utils方法)。

2 个答案:

答案 0 :(得分:6)

您所看到的是解构分配,自javascript 1.7起可用,请参阅此文档以获取更多信息https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.7

  

解构分配使得从数组中提取数据成为可能   或使用反映数组和结构的语法的对象   对象文字。        对象和数组文字表达式提供了一种创建临时数据包的简便方法。一旦你创建了这些包   数据,你可以任何你想要的方式使用它们。你甚至可以归还它们   来自功能。

答案 1 :(得分:0)

是的,请查看:

var abc = {classes: "ABC", interfaces: "DEF", utils: "XYZ"};
const {classes: Cc, interfaces: Ci, utils: Cu} = abc;
console.debug("test: ", Cc, Ci, Cu);

看起来很有趣,特别是对于正在阅读代码的人:)

相关问题