我在javascript中看到了以下两种指定对象文字属性的方法。
var a = {prop:2}
和
var a ={'prop':2}
这两种方式有什么区别..我知道第二种方法允许我们在属性名称中包含空格。是否还有其他优点。?
答案 0 :(得分:5)
除了您对创建无效标识符的属性名称的能力的观察之外没有区别。通过对属性名称使用带引号的字符串,可以使用任何字符串。当然,在访问此类属性时,您必须使用[ ]
代替.
:
var obj = { 'crazy property name': 100 };
if (obj[ 'crazy property name' ] > 1) alert("hi");
请注意,严格的JSON语法需要引用属性名称,此外需要引用始终使用双引号字符。