JS对象:如何在添加属性时动态命名成员

JS objects: how to Dynamically name members when adding properties

本文关键字:动态 成员 属性 添加 对象 JS      更新时间:2023-09-26

我正在尝试创建一个新的对象成员,并使用一个动态创建的字符串作为成员名称:

  > obA = {};
  > obb = {name:'jim', age:22};
  > var s = new String(obb.name);
  > obb;                       //{ name: 'jim', age: 22 }
  > obA.s = obb;               //{ name: 'jim', age: 22 }
  > obc = {name:'don', age:23};
  > var c = new String(obc.name);
  > obA.c = obc;
  > obA;
        outputs the folowing
             { s: { name: 'jim', age: 22 },
               c: { name: 'don', age: 23 } }

在本例中,我想将成员'jim''don'bA,而不是的'c'。相反,我上面的调用添加了的''c'jim''don'obA'中得到的是:

  > obA;
   // should output
        { jim: { name: 'jim', age: 22 },
          don: { name: 'don', age: 23 } }

使用括号表示法。

obj['property'] = value;

尝试[]而不是dot。

obA[s] = obb;
obA[c] = obc;
obA[obb.name] = obb;
obA[obc.name] = obc;