【问题标题】:Javascript expression to define object's property name?Javascript 表达式来定义对象的属性名称?
【发布时间】:2011-02-20 18:42:00
【问题描述】:

我想创建这个对象...

object = {
  'object[1][var_name_1]' : 'value1',
  'object[1][var_name_2]' : 'value2',
};

我正在尝试这种方式,但我收到错误 missing : after property id...

function getPrefix() {
  return 'object[1]';
}

object = {
  getPrefix() + '[var_name_1]' : 'value1',
  getPrefix() + '[var_name_2]' : 'value2',
}

我做错了什么?或者可能无法使用 js experession 设置对象属性名称?

谢谢

【问题讨论】:

标签: javascript


【解决方案1】:

您不能使用文字语法设置变量属性,但可以在创建对象后使用[] 设置属性:

myObject = {}
myObject["any_string_here"] = myValue

【讨论】:

    【解决方案2】:

    在对象字面量中,每个属性名只能是标识符而不是表达式,这意味着你不能使用变量。您只能在现有对象上使用方括号表示法,因此,如果您希望将变量用作属性名称,则需要在创建对象后进行:

    var object = {
        '1': {};
    };
    
    object[1][var_name_1] = 'value1';
    object[1][var_name_2] = 'value2';
    

    【讨论】:

    • 我不想拥有“多维”对象。我只希望属性 NAME 是 'object[1][var_name_1]'。
    • 在这种情况下,您的第一个代码示例将起作用。我现在不太清楚变量位在哪里。
    猜你喜欢
    • 2016-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 2018-10-19
    • 1970-01-01
    • 2021-08-22
    相关资源
    最近更新 更多