![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 25.11.2014 Ostrzeżenie: (10%) ![]() ![]() |
Co jest nie tak z drugim fragmentem kodu, że po var_dump($data) fragment pierwszy drukuje tak jak trzeba zawartość zmiennej a drugi NULL?
Pierwszy. Dobry
Drugi. Zły.
Mimo, że w konsoli przeglądarki po kolei wklepywany kod drugi zwraca to co trzeba
Ten post edytował twojastara 28.04.2015, 23:53:17 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 717 Pomógł: 120 Dołączył: 18.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
ku uściśleniu
[] ---> to jest tablica {} ---> to jest obiekt. Każda tablica jest również obiektem, bo JS jest językiem obiektowym i większość rzeczy to obiekty. Natomiast nie każdy obiekt jest tablicą. Jak przypiszesz do zmiennej coś takiego {}, czy {cosTam: 334} itp. to nie będzie to wcale żadna tablica, a obiekt. W JavaScripcie. Bo w PHP istniałoby coś takiego jak tablica asocjacyjna, w JS nie ma tablic asocjacyjnych, za to są obiekty. Więc zapis
powinien działać, tyle, że będzie działał pewnie niekoniecznie tak jakby chciał programista (jeśli się nie rozumie jak to działa do końca) Tzn. jeśli klucz (wartośc zmiennej elementy[0].name) jest liczbą to będzie to zapis tablicowy (bo zmienna data jest tablicą, bo została tak zadeklarowana: [] ), ale jeśli klucz jest stringiem, to tak naprawdę olewamy już tablicowość zmiennej data i odwołujemy się do zmiennej data jako do obiektu, dodając/zmieniając jego właściwości (innymi słowy data['nazwa'] to jest to samo co data.nazwa). Nie jest to jednak to samo, jak dodajemy właściwości do obiektu data, to nie działa właściwość length (bo niby czemu ma działać: http://jsfiddle.net/4Lfnwc8e/ Ten post edytował PrinceOfPersia 29.04.2015, 21:22:08 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 22:05 |