我正在尝试使用动态创建的字符串作为成员名称创建新的对象成员:
> 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'添加到 obA ,而不是's' 和'c'。相反,我上面的调用添加成员's'和'c'。有没有办法动态命名成员,以便我可以在运行时添加'jim'和'don',而无需提前知道成员名称。我在上面的例子中最后想要的是'obA':
> obA;
// should output
{ jim: { name: 'jim', age: 22 },
don: { name: 'don', age: 23 } }
答案 0 :(得分:3)
使用括号表示法。
obj['property'] = value;
答案 1 :(得分:2)
尝试使用[]
代替点。
obA[s] = obb;
obA[c] = obc;
答案 2 :(得分:1)
obA[obb.name] = obb;
obA[obc.name] = obc;