2012-03-18 36 views
0

时动态名成员:JS对象:如何将我试图创建一个动态创建的字符串作为成员名称的新对象的成员属性

> 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 } } 

在这个例子中,我想添加成员'吉姆'不要'OBA,不'S''C'。相反,我上面的电话添加成员的''c'。是否有某种方式来动态命名成员,以便我可以在运行时添加'jim''don'而不必提前知道成员名称。我在从“大羽”末上面的例子要的是:

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

'大羽[C] = OBC;' – kirilloid 2012-03-18 20:45:03

回答

1
obA[obb.name] = obb; 
obA[obc.name] = obc; 
+0

感谢,正是我想要的。 – JJRutter 2012-03-18 21:03:35

3

用括号标记。

obj['property'] = value; 
2

尝试[]而不是点。

obA[s] = obb; 
obA[c] = obc; 
相关问题