tom*_*cdo 14 javascript syntax object
JavaScript为您提供了许多声明对象的方法.当您手头有大部分数据时,最方便的(在我看来)如下:
var person = {
name: 'John',
age: 23
}; // "object literal syntax"
Run Code Online (Sandbox Code Playgroud)
关于这种语法的奇怪之处在于它与此相同:
var person = {
'name': 'John',
'age': 23
}; // "object literal syntax"
Run Code Online (Sandbox Code Playgroud)
也就是说,您可以使用引号或省略它们作为属性名称.
将其与设置单个属性的方式进行比较时,您有两个选择:
person.birthday = "January 12"; // "dot syntax"
Run Code Online (Sandbox Code Playgroud)
要么
person['birthday'] = "January 12"; // "array syntax"
Run Code Online (Sandbox Code Playgroud)
"点语法"仅在右操作数是实际属性名称时有效.如果要将变量用于属性名称,则必须使用"数组语法",即:
var prop = "birthday";
person[prop] = "January 12";
Run Code Online (Sandbox Code Playgroud)
现在,是否可以在"对象文字语法"中使用变量作为属性名称?因为引用属性名称并不重要,所以似乎没有一种明显的方法可以在那里使用变量.我正在寻找这样的东西:
var prop = "birthday";
var person = {
name: 'John',
age: 23,
(prop): 'January 12'
};
Run Code Online (Sandbox Code Playgroud)
在这里,我使用(prop)作为用于表示这是变量而不是文字字符串的虚构语法.
谢谢.
不,这不起作用,这就是为什么,如果你动态设置属性名称,建议并使用表示符号.
var k='propertyname';
object[k]="value";
Run Code Online (Sandbox Code Playgroud)
这是有效的,同时使用点表示法从vatiable设置索引或属性名称是不可能的.