被JavaScript语法弄糊涂了
我正在查看一些代码,无法理解这意味着什么:被JavaScript语法弄糊涂了,javascript,Javascript,我正在查看一些代码,无法理解这意味着什么: (attrs={})[key]=val key和val都是字符串变量 这是if条件的快捷方式吗?对象声明 (attrs = {})[key] = val; 相当于 attrs = {}; attrs[key] = value; 也就是说,表达式中的变量赋值首先发生,然后通过普通属性赋值修改对象(赋值的结果) 我个人会在这里使用后一种形式 相当于 attrs = {}; attrs[key] = value; 也就是说,表达式中的变量赋值首先发生,
(attrs={})[key]=val代码>
key
和val
都是字符串变量
这是if条件的快捷方式吗?对象声明
(attrs = {})[key] = val;
相当于
attrs = {};
attrs[key] = value;
也就是说,表达式中的变量赋值首先发生,然后通过普通属性赋值修改对象(赋值的结果)
我个人会在这里使用后一种形式
相当于
attrs = {};
attrs[key] = value;
也就是说,表达式中的变量赋值首先发生,然后通过普通属性赋值修改对象(赋值的结果)
我个人会在这里使用后一种形式。类似于数学,在javascript中,在()
中发生的任何事情都会首先发生。例外情况是函数定义中严格用于声明
由()
表示的表达式将在代码的其余部分之前执行,并返回其中的值。这可用于多个位置,例如立即执行的函数表达式,或用于在表达式中使用逗号构建返回值的位置
在您的例子中,(attrs={})
表达式将返回一个对象,同时还将该对象分配给变量attrs。下一个代码将作用于返回的对象,通过键处的[]
符号访问对象的属性,然后将其分配给值类似于数学,在javascript中,()
中发生的任何事情都将首先发生。例外情况是函数定义中严格用于声明
由()
表示的表达式将在代码的其余部分之前执行,并返回其中的值。这可用于多个位置,例如立即执行的函数表达式,或用于在表达式中使用逗号构建返回值的位置
在您的例子中,(attrs={})
表达式将返回一个对象,同时还将该对象分配给变量attrs。下一个代码将作用于返回的对象,通过键处的[]
符号访问该对象的属性,然后将其分配给值
,因此换句话说,它声明一个对象,同时将值分配给该对象的一个成员。在我看来,这是一种“聪明”的编程技巧,它节省了几个字符,使代码更难为下一个家伙维护!换句话说,它声明了一个对象,同时为对象的一个成员赋值。在我看来,这是一种“聪明”的编程技巧,它节省了几个字符,使代码更难为下一个家伙维护!