• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dlaczego występują w nim takie konstrukcje?

Object Storage Arubacloud
0 głosów
110 wizyt
pytanie zadane 20 kwietnia 2016 w JavaScript przez Surykat Stary wyjadacz (14,780 p.)
edycja 20 kwietnia 2016 przez Surykat

Cześć ;)

Zaczynam za jakiś czas pracę, w której będzie potrzebny JavaScript. Zacząłem się więc go uczyć, i parę rzeczy jest dla mnie dziwnych, wręcz denerwujących (po prostu pewne rzeczy do mnie nie docierają).

Przerabiam sobie warsztat JS z codeacademy.com i musiałem napisać coś takiego:

http://wklej.org/id/2317988/

Stworzyłem obiekt "friends"(mający być listą kontaktów), który przechowywał konkretne instancje kontaktów w postaci swoich... properties? Tak się w ogóle robi? Dla mnie najnaturalniejszym byłoby utworzenie obiektu "Kontakt" i utworzenie tablicy tych obiektów. O co tutaj chodzi?

Druga rzecz, to ta javascriptowa pętla for (która wygląda jak c#-owy foreach). Ona przechodzi po wszystkich właściwościach obiektu friends?? Jak to działa? (kod który wkleiłem, na wklejce, code academy uznał za poprawny),

Jest tu tyle niejednoznaczności, że mnie aż głowa boli. ;(

PS

Jeśli zechcę wyświetlić obiekt JS wprost (np w konsoli), to bedzie on zapisany zawsze w formacie JSon?

Mam na myśli takie coś:

var obiekt = new Object();
console.log(obiekt);

 

2 odpowiedzi

+4 głosów
odpowiedź 21 kwietnia 2016 przez Comandeer Guru (601,590 p.)
wybrane 21 kwietnia 2016 przez Surykat
 
Najlepsza

Uaaa… Taki kod to się pisało wieki temu. W obecnym JS wyglądałoby to tak: http://wklej.org/hash/0dc5946ca43/

Stworzyłem obiekt "friends"(mający być listą kontaktów), który przechowywał konkretne instancje kontaktów w postaci swoich... properties? Tak się w ogóle robi? 

Tak. Tablica asocjacyjna w JS to po prostu obiekt. Tyle że nie stosuje się new Object → http://tutorials.comandeer.pl/js-beauty.html#literaly

Druga rzecz, to ta javascriptowa pętla for (która wygląda jak c#-owy foreach). Ona przechodzi po wszystkich właściwościach obiektu friends?? Jak to działa?  

Tak, for...in przechodzi po wszystkich elementach obiektu. Ale obecnie nie jest to najlepszy sposób, bo istnieje np. Object.keys.forEach czy wykorzystany przeze mnie for...of. O for...in można powoli zapomnieć. 

Jeśli zechcę wyświetlić obiekt JS wprost (np w konsoli), to bedzie on zapisany zawsze w formacie JSon?

JSON to skrót oznaczający "JavaScript Object Notation". Ten format to po prostu natywny format zapisu obiektów w JS. 

komentarz 21 kwietnia 2016 przez Surykat Stary wyjadacz (14,780 p.)

Dzięki serdeczne, powoli zaczynam się w tym odnajdywać. :)

Natomiast mam pytanie co do wyświetlania obiektu- tworząc obiekt taki:

 

var object = new Object();

object.name = "Sasza";
object.lastName = "Konopka";

Próbując wyświetlić "object" za pomocą 

document.write(object);

output wyświetla:

[object Object]

Gdy ten sam obiekt wrzucę do konsoli, to zawiera on wszystkie informacje, w postaci JSon, o ile dobrze myślę. Dlaczego? :)

Object { name: "Sasza", lastName: "Konopka" }

 

komentarz 21 kwietnia 2016 przez Comandeer Guru (601,590 p.)

Bo konsola to konsola ;) Ona wyświetla obiekty takie, jakimi są. Natomiast jeśli chce się wyświetlić obiekt na stronie/w DOM musi być przerobiony na string, czyli po prostu jest robione obiekt.toString i stąd taki wynik.

komentarz 21 kwietnia 2016 przez Surykat Stary wyjadacz (14,780 p.)
Ok, dziękuję Ci bardzo. :)
+1 głos
odpowiedź 21 kwietnia 2016 przez Rubeus024 Obywatel (1,680 p.)
Cześć,

1)  Co do pętli for in, to tak, przechodzi przez wszystkie kolejne właściwości konkretnego obiektu. Obiektu, tablica obiektów odpada. Pełne info znajdziesz pod tym linkiem: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in

Co do stworzenia listy kontaktów to oczywiście można zastosować tablicę obiektów i dla mnie jest ona czytelniejsza niż ten przykład. Opanowałeś tworzenie konstruktorów w js? Nie wiem, czy taki sposób tworzenia obiektów jest używany przez programistów. Niech inni się na ten temat wypowiedzą, dopiero co się uczę tego języka.

Podobne pytania

0 głosów
0 odpowiedzi 160 wizyt
pytanie zadane 9 maja 2016 w C i C++ przez konrad99 Gaduła (4,090 p.)
0 głosów
1 odpowiedź 282 wizyt
pytanie zadane 5 października 2019 w HTML i CSS przez Majonez.exe Gaduła (3,490 p.)
0 głosów
5 odpowiedzi 628 wizyt
pytanie zadane 27 września 2019 w HTML i CSS przez Majonez.exe Gaduła (3,490 p.)

92,579 zapytań

141,432 odpowiedzi

319,663 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...