Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Tablica obiektów w tablicy innych obiektów
radziopoke
post
Post #1





Grupa: Zarejestrowani
Postów: 125
Pomógł: 14
Dołączył: 2.06.2010

Ostrzeżenie: (0%)
-----


Choć nie którym dużo tytuł nie powie podam przykład po czym wyjaśnię mój problem. Oto kod JavaScript
  1. function object(x, y)
  2. {
  3. this.fire = new Array();
  4. this.x = x;
  5. this.y = y;
  6. }
  7. function object2(x, y)
  8. {
  9. this.x=x;
  10. this.y=y;
  11. }
  12.  
  13. var a = new Array();
  14. a[0] = new object(10, 15);
  15. for(var i=0; i<5; i++)
  16. {
  17. a.fire[i] = new object2(0,0);
  18. }
  19. 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

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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 20:11