2013-08-29 84 views
6
HeroName = new Hero() 
HeroName.Spells = []; 
HeroName.Spells[0].Type = []; 

这不工作=(,即使我尝试新的Array()或其他任何东西是没可能到阵列中做阵列,这是我正想为:数组内的对象内的数组? ?

HeroName.Spells[0].Type[0] = new DmgSpell(); 
HeroName.Spells[0].Type[1] = new Buff(); 

我知道我可以这样做

HeroName.Spells[0][0] = new DmgSpelL(); 
HeroName.Spells[0][1] = new Buff(); 

但这并不使它容易阅读

难道我做错了什么?我已经试过各种可能的组合,我能想到的并使用谷歌搜索'数组内的数组'给了我其他结果,不帮助我。任何帮助非常感谢

+1

'Spells [0]'需要有一个对象分配给它才能工作 - 目前看起来好像你正在试图向一个不敏感的对象添加一个属性'Type'。 – Marty

+0

抱歉失踪了这么明显的事情,非常感谢你解释它 –

回答

7

你错过了一个步骤。您还没有声明HeroName.Spells[0]是一个对象,因此您不能将它设为Type属性,因为它不存在。此作品:

HeroName = new Hero(); 
HeroName.Spells = []; 
HeroName.Spells[0] = {}; 
HeroName.Spells[0].Type = []; 
+0

Doh我现在觉得很蠢......非常感谢你的帮助,所以很高兴看到它!再次感谢你 –

+0

不客气@HateNames – Paulpro

3

将HeroName.Spells [0]设置为Object,否则为undefinedundefined不能有任何属性。

HeroName.Spells[0] = {}; 
+0

非常感谢您花时间解释并写出一个例子 –