![]() |
![]() ![]() |
![]() |
![]()
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%) ![]() ![]() |
|
|
|
![]()
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 (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Proszę zobaczyć:
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? (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)
|
|
|
![]()
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ć (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]()
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: 26.08.2025 - 14:21 |