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

Javascript-使用逗号访问属性-程序员的意思是什么?,javascript,object,Javascript,Object,我正在修改一个由第三方编写的Javascript库。代码在很大程度上是有效的。没有语法错误。几乎不可能询问作者关于代码的情况 我遇到了这个构造,无法理解程序员的意图 pages[uuid, elIndex] = 12; 用ChromeDevTools检查,我看到页面是一个对象。uuid是一个字符串,elIndex是一个数字 我无法理解在多个对象属性之间使用逗号的目的。这是一些非常模糊的Javascript语法吗?像这样访问“多个属性”是什么意思?这是: pages[uuid, elIndex]

我正在修改一个由第三方编写的Javascript库。代码在很大程度上是有效的。没有语法错误。几乎不可能询问作者关于代码的情况

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

pages[uuid, elIndex] = 12;
用ChromeDevTools检查,我看到页面是一个对象。uuid是一个字符串,elIndex是一个数字

我无法理解在多个对象属性之间使用逗号的目的。这是一些非常模糊的Javascript语法吗?像这样访问“多个属性”是什么意思?

这是:

pages[uuid, elIndex] = 12;
完全等同于:

pages[elIndex] = 12;
这是很少使用的

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

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

这个:

pages[uuid, elIndex] = 12;
完全等同于:

pages[elIndex] = 12;
这是很少使用的

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


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

可能程序员认为这是多维数组访问。但如果没有进一步的代码,我们只能猜测其中任何一个。这似乎是错误的。这只是将属性(“uuid”和“elIndex”)都设置为12。我想将uuid设置为12是无意的。@AlexBieg不,它只设置
pages[elINdex]=12
。逗号运算符的优先级低于数组acces@user3080953哎呀,你是对的。我把控制台里的小测试搞砸了。很抱歉。@OmSao您的理解不正确,user3080953解释了原因。可能程序员认为这是多维数组访问。但如果没有进一步的代码,我们只能猜测其中任何一个。这似乎是错误的。这只是将属性(“uuid”和“elIndex”)都设置为12。我想将uuid设置为12是无意的。@AlexBieg不,它只设置
pages[elINdex]=12
。逗号运算符的优先级低于数组acces@user3080953哎呀,你是对的。我把控制台里的小测试搞砸了。很抱歉。@OmSao您的理解不正确,用户3080953解释了原因。谢谢大家。帮了大忙。这看起来很像一个类似的例子,也许程序员对逗号操作符非常熟悉,以至于他把它当成了一个“待办事项”,假设它不会把其他程序员搞糊涂。谢谢大家。帮了大忙。这看起来很像一个类似的例子,也许程序员对逗号操作符非常熟悉,以至于他把它当成了一个“待办事项”,假设它不会把其他程序员搞糊涂。