function object(x, y) { this.x = x; this.y = y; } function object2(x, y) { this.x=x; this.y=y; } a[0] = new object(10, 15); for(var i=0; i<5; i++) { a.fire[i] = new object2(0,0); } document.write(a[0].fire[0].x);
Po kolei. Tworze tablicę obiektów 'object' o nazwie 'a'.
Jak widać a[0] to nasz nowy object. posiada on 3 zmienne z czego jedna z nich dokładnie 'fire' jest tablicą. Będzie to tablica kolejnych obiektów co można zauważyć w pętli for. Obiekty są tworzone bez problemu. kłopot jest gdy chcemy odczytać wartość x lub y jednego z obiektów fire obiektu a który jest tablicą. Google chrom sypie błędem:
Cytat
Uncaught TypeError: Cannot read property 'fire' of undefined
Lecz za pomocą Watch Expression, podglądając zmienną a bez problemu widzimy że obiekt został stworzony poprawnie. Wygląda to mniej więcej tak:
Kod
a:Array[1]
0: object
fire:Array[5]
0: object2
x:0
y:0
1: object2
x:0
y:0
2: object2
x:0
y:0
3: object2
x:0
y:0
4: object2
x:0
y:0
x:10
y:15
0: object
fire:Array[5]
0: object2
x:0
y:0
1: object2
x:0
y:0
2: object2
x:0
y:0
3: object2
x:0
y:0
4: object2
x:0
y:0
x:10
y:15
czyli po tym widać, że wszystko zostało stworzone tak jak chciałem tylko jak odczytać zmienną x lub y obiektu fire.
Zauważyłem, że gdyby zmienna 'a' nie byłaby tablicą wszystko odczytuje bez problemu. Ale potrzebuję by 'a' była tablicą obiektów tak samo jak zawarta w niej zmienna fire.
Jest to tylko przykład bardziej rozwiniętego kodu. Który tez nie działa.