Obiekty w JavaScript 1/2: właściwości pod jedną nazwą
Plan tematu (2 godziny):
Godzina 1 (dziś): literał obiektu, dostęp do właściwości kropką i nawiasem
Godzina 2: metoda obiektu - funkcja wewnątrz obiektu i słowo this
Ćwiczenie: obiekt z trzema właściwościami, odczyt dwoma sposobami dostępu
Rozgrzewka · 3 minuty
Rozgrzewka: tablice z poprzednich lekcji
Macie tablicę const fruits = ["jablko","gruszka","banan"];. Pod jakim indeksem znajduje się "banan"?
Jak dopiszecie nowy element na końcu tablicy metodą, a nie ręcznym numerem indeksu?
Pętla for przechodzi po wszystkich elementach tablicy - co zmienia się w niej z każdym przebiegiem?
Część 1 · Czym jest obiekt
Obiekt: właściwości pod jedną nazwą
Obiekt to zbiór powiązanych ze sobą danych zebranych pod jedną nazwą zmiennej. Każda dana ma nazwę (klucz) i wartość - razem nazywamy to właściwością (ang. property). Zapis w klamrach { } to literał obiektu - piszecie całą zawartość obiektu wprost, tak jak go tworzycie. Obiekt jest jak karta osobowa: jedna karta, kilka pól.
Ciekawostka z Wikipedii: zapis z klamrami, którego się właśnie uczycie, to podstawa formatu JSON (JavaScript Object Notation), używanego dziś w prawie każdej aplikacji do przesyłania danych między serwerem a przeglądarką. W 2001 roku Douglas Crockford wziął literał obiektu za wzór przy tworzeniu tego formatu.
MDN: Learn_web_development/Core/Scripting/Object_basics (sekcja „Object basics”: „An object is a collection of related data and/or functionality”; „An object like this is referred to as an object literal”)
Część 2 · Dwa sposoby dostępu
Kropka i nawias: dwie drogi do tej samej wartości
Dostęp kropką: nazwa obiektu, kropka, nazwa właściwości bez cudzysłowu. Dostęp nawiasem: nazwa obiektu, nawias kwadratowy, nazwa właściwości w cudzysłowie. Oba zapisy dają dokładnie ten sam wynik.
console.log(student.firstName); // Anna
console.log(student["lastName"]); // Kowalska
MDN: Learn_web_development/Core/Scripting/Object_basics (sekcja „Dot notation”: „you accessed the object's properties and methods using dot notation”; sekcja „Bracket notation”: „Bracket notation provides an alternative way to access object properties”)
Część 3 · To już znacie z PHP
Z PHP już to widzieliście
W PHP klucz tekstowy w nawiasie znaliście z tablicy asocjacyjnej (kurs PHP, lekcja 02), a strzałkę -> z właściwości obiektu klasy (kurs PHP, lekcje 13-15). W JavaScript nie ma strzałki - obiekt ma tylko kropkę albo nawias z cudzysłowem, tak jak PHP-owa tablica asocjacyjna, ale bez znaku $ przed nazwą.
Część 4 · Tablica czy obiekt
Numerki czy etykiety
let fruitsList = ["jablko", "gruszka"];
console.log(fruitsList[0]); // jablko - dostęp po numerze miejsca
console.log(student.firstName); // Anna - dostęp po nazwie właściwości
MDN: Learn_web_development/Core/Scripting/Object_basics (sekcja „Bracket notation”: „objects are sometimes called associative arrays”)
Egzamin EE.09 / E.14
Tak pytają na egzaminie
1.var person = {firstName: "Anna", lastName: "Kowalska", birthYear: 1985}; W języku JavaScript zapisano definicję obiektu. Aby odwołać się do własności lastName należy zapisać
person[1]
person[2]
person.lastName
person::lastName
2.obj = { q: 1, w: 2, e: 3, r:4 }; W języku JavaScript utworzono obiekt. Aby pobrać wartość własności w można zapisać
obj:w
obj.w
obj::w
obj->w
CKE, E.14, czerwiec 2017, zadanie 34 · CKE, EE.09, styczeń 2021, zadanie 4
Ćwiczenie przy komputerze · 20 minut
Ćwiczenie: obiekt i dwa sposoby dostępu
Otwórz script.js z poprzednich lekcji (w folderze swojego projektu).