JavaScript为您提供了许多声明对象的方法。当你有最可手头的数据,最方便的(在我看来)如下:JavaScript对象声明语法 - 作为属性的变量名称
var person = {
name: 'John',
age: 23
}; // "object literal syntax"
有关该语法的一个奇怪的事情是,它是相同的:
var person = {
'name': 'John',
'age': 23
}; // "object literal syntax"
也就是说,您可以使用引号或省略属性名称。
当比较,为的方式设置一个属性的作品,你有两个选择:
person.birthday = "January 12"; // "dot syntax"
或
person['birthday'] = "January 12"; // "array syntax"
“点语法”只能权当操作数是实际属性名称。如果你想使用一个变量属性名称,必须使用“数组语法”,即:
var prop = "birthday";
person[prop] = "January 12";
现在,是有可能在使用变量属性名称“对象文字语法” ?因为引用属性名称并不重要,所以在那里使用变量似乎没有明显的方法。我在寻找这样的事情:
var prop = "birthday";
var person = {
name: 'John',
age: 23,
(prop): 'January 12'
};
这里我使用(丙)作为用来表达,这是一个变量,而不是一个字符串虚语法。
谢谢。
我认为你必须坚持到数组语法..也许的eval(+道具+” =“1月12日“')会诀窍,但我不认为这是最佳解决方案 –
@PhilippeBoissonneault - Ack! Eval是*不需要的......请不要在这种情况下使用它。 –
您正在寻找相当于PHP变量的变量:'$ foo = bar; $ bar ='123'; echo $$ foo; //实际显示'123'' – Ray