繁体   English   中英

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

[英]Using an associative array as a variable name? - javascript

我正在浏览来自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位于某个值的位置将使用(对于Cis来说是Components接口方法,对于Cu来说是Components utils方法)。

您所看到的是一个Destructuring作业,该功能自javascript 1.7以来就可用,有关更多信息,请参见此文档https://developer.mozilla.org/zh-CN/JavaScript/New_in_JavaScript/1.7

通过解构分配,可以使用与数组和对象文字相同的语法来从数组或对象中提取数据。 对象和数组文字表达式提供了一种创建临时数据包的简便方法。 一旦创建了这些数据包,就可以按需要使用它们。 您甚至可以从函数中返回它们。

是的,检查一下:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM