2013-08-29 210 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

非常感謝您花時間解釋並寫出一個例子 –