Javascript表达式定义对象的属性名称?

时间:2010-05-18 08:09:01

标签: javascript

我想创建这个对象......

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设置对象属性名称?

谢谢

2 个答案:

答案 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';