在javascript中指定对象文字内的属性的不同方法

Jin*_*iel 2 javascript properties object-literal

我在javascript中看到了以下两种为对象文字指定属性的方法.

var a = {prop:2}
Run Code Online (Sandbox Code Playgroud)

var a ={'prop':2}
Run Code Online (Sandbox Code Playgroud)

这两种方式有什么区别..我知道第二种方法允许我们在属性名称中包含空格.还有其他任何优点吗?

Poi*_*nty 5

除了您对创建无效标识符的属性名称的能力的观察之外没有其他区别.通过对属性名称使用带引号的字符串,可以使用任何字符串.当然,当您访问这些属性时,您必须使用[ ]而不是.:

var obj = { 'crazy property name': 100 };

if (obj[ 'crazy property name' ] > 1) alert("hi");
Run Code Online (Sandbox Code Playgroud)

请注意,严格的JSON语法要求引用属性名称,此外,它要求始终使用双引号字符进行引用.