Javascript - 使用逗号访问属性 - 程序员是什么意思?



我正在修改一个由第三方编写的Javascript库。代码在大多数情况下确实有效。没有语法错误。几乎不可能向作者询问代码。

我遇到了这个结构,无法理解程序员的意图。

pages[uuid, elIndex] = 12;

使用 Chrome devtools 检查,我看到该页面是一个对象。 uuid是一个字符串,elIndex是一个数字。

我无法理解多个对象属性之间的逗号在这里的意图。这是一些非常晦涩的Javascript语法吗?像这样访问"多个属性"是什么意思?

这个:

pages[uuid, elIndex] = 12;

完全等同于:

pages[elIndex] = 12;

这是很少使用的逗号运算符。

与方法调用(采用多个以逗号分隔的参数)不同,数组索引器采用单个表达式,因此uuid, elIndex被分析为使用逗号运算符的单个表达式。逗号运算符计算两侧,然后丢弃左侧的值并返回右侧的值。它偶尔用于for循环初始值设定项,并且在缩小代码中大量使用,但除此之外,如果您尝试编写可读代码,它实际上没有大量实际应用。

正如Bergi在上面的评论中指出的那样,作者可能认为这将是一个多维数组访问,但事实并非如此。这只是pages[elIndex].

最新更新