javascript对象赋值抛出异常

时间:2012-12-06 19:00:34

标签: javascript javascript-objects

我试图建立一个javascript矩阵作为对象。

我并列:

var variations={}; 
variations["p1088"]["red"]["gen"]=1107;
variations["p1090"]["red"]["l"]=1288;

var variations={}; 
variations.p1088.red.gen=1107;
variations.p1090.red.gen=1288;

但两者都抛出异常

TypeError: variations.p1090 is undefined

这里有什么不对吗?

3 个答案:

答案 0 :(得分:5)

需要声明每个子对象。因此,要获得第一个设置,它将是

var variations = {};
variations.p1088 = {};
variations.p1088.red = {};
variations.p1088.red.gen = 1107;

但是,如果我理解你要做的事情,我会做出各种对象的变化。

var variations = [];
variations[0] = {name: 'p1088',color:'red',gen:1007}

答案 1 :(得分:4)

如错误所示,variations.p1090未定义。你永远不会给它一个价值。

var variations={}; 
variations.p1088={};
variations.p1088.red={};
variations.p1088.red.gen=1107;

答案 2 :(得分:2)

因为你不能假设p1088,red和gen是对象。这有效:

// short version
var variations = { p1088: { red: { gen: 1107 } } };

// long version
var varations = {};
varations.p1088 = {};
varations.p1088.red = {};
varations.p1088.red.gen = 1077;