W3G*_*eek 0 javascript object literals string-literals
我有一个问题已经真的窃听我相当一段时间,我似乎无法找到涵盖主题的任何资源.JavaScript中的属性名称如何是字符串文字或数字文字?
var obj = {
"bar": "foobar",
"foo": function() { return bar; }
}
Run Code Online (Sandbox Code Playgroud)
自从我几年前了解这个话题以来,这个话题一直困扰着我.我不知道从哪里获得更深入的信息或甚至是什么.我并没有对如何设置这一点感到困惑,因为我知道新对象正在使用成员创建,bar&foo然后将其分配给obj变量.
你不能创建像var"bar"="foobar"这样的变量; 因为你会得到语法错误.它如何对对象文字有效?任何有关这方面的帮助将非常感谢.
在JavaScript中,属性名称是String值 - 任何String值.这就是指定语言的方式.
相关产品:
PropertyName :
IdentifierName
StringLiteral
NumericLiteral
Run Code Online (Sandbox Code Playgroud)
如果提供了标识符或数字文字,则将其转换为字符串值(SV).
见:http://ecma-international.org/ecma-262/5.1/#sec-11.1.5
所以,例如:
var obj = {
foo: true, // the name of this property becomes 'foo'
'bar': true, // the name of this property becomes 'bar'
123: true // the name of this property becomes '123'
};
Run Code Online (Sandbox Code Playgroud)
您甚至可以使用空字符串作为属性名称:
var obj = {
'': 'foo'
};
obj[''] // 'foo'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
794 次 |
| 最近记录: |