【发布时间】:2011-08-12 17:24:06
【问题描述】:
两者之间是否有区别:
var x = {
hello: 'world'
};
和
var x = {
'hello': 'world'
};
?
也就是说,在什么情况下,将属性名称作为字符串给出与作为“原始”名称给出不同的结果?例如,我知道var x = {}; x['@£$%'] = 'bling!'; 是有效的(因为任何字符串都可以是属性),但x.@£$% = 'bling!' 不起作用。语言关键字或保留关键字也不会作为属性名称(因此 var x = {for: 'good', class: 'y'}; 不起作用。
还有什么?
例如,如果
var hello = 'goodbye';
是在上面的例子中定义的吗?或者别的什么,比如
function hello() {
return 'goodbye';
}
?
为了安全起见,我是否应该始终将属性名称设为字符串?
【问题讨论】:
标签: javascript