我想创建这个对象......
object = {
'object[1][var_name_1]' : 'value1',
'object[1][var_name_2]' : 'value2',
};
我正在尝试这种方式,但我收到错误缺失:属性ID ...
function getPrefix() {
return 'object[1]';
}
object = {
getPrefix() + '[var_name_1]' : 'value1',
getPrefix() + '[var_name_2]' : 'value2',
}
我做错了什么?或者也许不可能使用js experession设置对象属性名称?
谢谢
答案 0 :(得分:4)
您无法使用文字语法设置变量属性,但您可以在创建对象后使用[]
设置属性:
myObject = {}
myObject["any_string_here"] = myValue
答案 1 :(得分:2)
在对象文字中,每个属性名称只能是标识符而不是表达式,这意味着您不能使用变量。您只能在现有对象上使用方括号表示法,因此如果您希望将某个变量用作属性名称,则需要在创建对象后执行此操作:
var object = {
'1': {};
};
object[1][var_name_1] = 'value1';
object[1][var_name_2] = 'value2';