2013-05-14 74 views
0

我想在javascript中创建一个包含其他对象数组的对象。 即对象的javascript数组成员

var xobj = { 
    d: 0, 
    e: 0, 
    f: 0 
}; 

var topObj = { 
    x: [], 
    a: 0, 
    b: 0, 
    c: 0 
}; 

topObj.x[0].d = 1; 
topObj.x[0].e = 2; 
var xx = topObj.x[0].d + topObj.x[0].e; 

console.log(xx); 

我想topObj.x是的xobj阵列。

我越来越:

Uncaught TypeError: Cannot set property 'd' of undefined

回答

3

你可以做到这一点,但你必须填充对象的实例数组(xobj):

topObj.x.push(xobj); 
+0

Yeap,工作。我想我有一个后续问题:有没有办法将对象数组声明为另一个对象的属性? – gene 2013-05-14 05:07:49

+0

是的,您可以将“x”初始化为某个现有的数组对象而不是空数组。 – TGH 2013-05-14 05:14:29

+0

谢谢@tgh。 – gene 2013-05-14 17:25:17

0

,如果你想在短短的值将xobj附加到阵列我会创建类似这样的东西

for (prop in xobj) { 
    topObj.x.push(xobj[prop]) 
}