9. Obiekty i dostęp do właściwości
~35 min
podstawowy
Obiekty przechowują pary klucz-wartość. Klucze to zwykle stringi.
Tworzenie obiektu
const osoba = {
imie: "Jan",
nazwisko: "Kowalski",
wiek: 32,
czyStudent: false,
adres: {
miasto: "Warszawa",
ulica: "Prosta 1"
}
};
Dostęp do właściwości
console.log(osoba.imie); // Jan
console.log(osoba["nazwisko"]); // Kowalski
osoba.wiek = 33; // modyfikacja
osoba["zawod"] = "programista"; // dodanie nowej
Metody w obiektach
const auto = {
marka: "Toyota",
model: "Corolla",
rok: 2020,
przedstawSie() {
return `${this.marka} ${this.model} (${this.rok})`;
}
};
console.log(auto.przedstawSie()); // Toyota Corolla (2020)
Ciekawostka: this odnosi się do obiektu, w którym metoda jest zdefiniowana (uwaga przy arrow functions!).
Object methods
console.log(Object.keys(osoba)); // ["imie", "nazwisko", "wiek", ...]
console.log(Object.values(osoba));
console.log(Object.entries(osoba));
Ostrzeżenie: Nie używaj arrow function jako metody obiektu jeśli potrzebujesz this.
Ćwiczenie
- Stwórz obiekt książka {tytul, autor, rok, przeczytana: false}.
- Dodaj metodę przeczytaj() zmieniającą przeczytana na true.
- Wypisz wszystkie klucze obiektu za pomocą Object.keys().
Poprawka do oryginału: Dodano zagnieżdżone obiekty, metody, Object.*, ostrzeżenie o this.