![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zablokowani Postów: 167 Pomógł: 2 Dołączył: 15.02.2004 Ostrzeżenie: (30%) ![]() ![]() |
Czy jest możliwe używanie tablic asocjacyjnych w JavaScript? Jeżeli tak to w jaki sposób?
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
-------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#3
|
|
Grupa: Zablokowani Postów: 167 Pomógł: 2 Dołączył: 15.02.2004 Ostrzeżenie: (30%) ![]() ![]() |
Dzięki. A przy tworzeniu obiektów tzw. literałowo (w książce jest takie określenie), tworzenie tablic ascocjacyjnych nie działa
![]()
Pojawia się błąd: "Missing: after property id" i wskazuje na nawiaz klamrowy za nazwa zmiennej tablica Ten post edytował Martio 31.10.2006, 18:00:54 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 352 Pomógł: 0 Dołączył: 22.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nie ma tablic assocjacyjnych w javascript.. są tylko numerowane, możesz wykorzystywać obiekty jako tablice associacyjne. Tak więc jak zadeklarujesz coś jako Array() to jest to tablica numeryczna nie asocjacyjna..
Możesz natomiast zrobić tak: Kod var test = {
tablica: { "pierwszy": "to jest pierwsza pozycja", "drugi": "to jest druga pozycja" }, pokaz: function() { alert(test.tablica['pierwszy']); } } |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 312 Pomógł: 9 Dołączył: 14.10.2006 Skąd: warszawa Ostrzeżenie: (0%) ![]() ![]() |
to dlaczego mi to działa?
![]()
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 352 Pomógł: 0 Dołączył: 22.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
jarrod, bo tablica jest również obiektem.. to co robisz to tylko dodawnie właściwości do obiektu.. zresztą zobacz ile Twoja tablica ma elementów (vals.length) po dodaniu tych właściwości, to powinno Ci wiele wyjaśnić
![]() |
|
|
![]()
Post
#7
|
|
Grupa: Zablokowani Postów: 167 Pomógł: 2 Dołączył: 15.02.2004 Ostrzeżenie: (30%) ![]() ![]() |
Nie ma tablic assocjacyjnych w javascript.. są tylko numerowane, możesz wykorzystywać obiekty jako tablice associacyjne. Tak więc jak zadeklarujesz coś jako Array() to jest to tablica numeryczna nie asocjacyjna.. Możesz natomiast zrobić tak: Kod var test = { tablica: { "pierwszy": "to jest pierwsza pozycja", "drugi": "to jest druga pozycja" }, pokaz: function() { alert(test.tablica['pierwszy']); } } Odwołujesz się poprzez test.tablica['pierwszy']. Czy "test" to jest nazwa obiektu, serii obiektów, a może klasy? Jak ten zestaw obiektów się fachowo nazywa? Dlaczego nie w każdym przypadku można odwołać się poprzez this? W niektórych skryptach działa, innymi nie. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 352 Pomógł: 0 Dołączył: 22.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
'test' jest obiektem, jedną i jedyną jego możliwą instancją przy takim zapisie.. w definicji właściwości 'pokaz', która jest funkcją, kopiowałem Twój zapis ale mogłem napisać 'this.tablica['pierwszy']' i też by zadziałało.
Tak naprawdę w javascript nie ma klas, można utwożyć natomiast jakby szablon obiektu (w działaniu przypominający klasę) budując funkcję, która będzie konstruktorem obiektu i dodając właściwości poprzez dodawanie ich do prototypu konstruktora. Świetny artykuł na ten temat został nie dawno napisany: http://www.digital-web.com/articles/objectifying_javascript/ |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 06:10 |