Moduł 09 – OOP (Object Oriented Programming)

Kurs front-end 2 cze 2023


OOP, czyli programowanie obiektowe, to sposób tworzenia kodu za pomocą obiektów, które łączą stan (dane) i akcje (operacje). W tej lekcji nauczysz się podstaw programowania obiektowego, które jest standardem w wielu językach, i choć JavaScript nie wymusza tego stylu, często spotykamy się z elementami programowania obiektowego w praktyce.

📚 Zawartość modułu

Moduł "OOP" jest podzielony na 30 lekcji:

  1. Wstęp: Wprowadzenie do programowania obiektowego i znaczenia OOP w kontekście tworzenia kodu.
  2. Krótkie przypomnienie właściwości obiektów: Przypomnienie podstawowych pojęć i właściwości obiektów w programowaniu.
  3. Counter — przykładowa aplikacja z wieloma instancjami: Tworzenie aplikacji licznika jako przykładu obiektu z możliwością tworzenia wielu instancji.
  4. this - kontekst wywołania funkcji: Zrozumienie działania słowa kluczowego "this" i jego zastosowania w funkcjach.
  5. Factory functions: Wykorzystanie fabryk funkcji do tworzenia obiektów.
  6. Funkcje konstruktora: Użycie funkcji konstruktora do tworzenia obiektów.
  7. proto i prototype: Omówienie prototypów i ich roli w dziedziczeniu w JavaScript.
  8. Projekt 0 - licznik w drzewie DOM: Implementacja licznika w drzewie DOM jako praktycznego zastosowania OOP.
  9. Zmiana kontekstu - bind, call i apply: Zmiana kontekstu funkcji za pomocą metod bind, call i apply.
  10. Zmiana kontekstu i argumenty: Omówienie zmiany kontekstu oraz przekazywania argumentów w funkcjach.
  11. Funkcje strzałkowe — arrow functions: Wykorzystanie funkcji strzałkowych w JavaScript.
  12. Funkcje strzałkowe — różnice w działaniu: Przedstawienie różnic w działaniu funkcji strzałkowych w porównaniu do tradycyjnych funkcji.
  13. Wartość this w funkcjach wyższego rzędu — część 1: Omówienie zachowania słowa kluczowego "this" w funkcjach wyższego rzędu.
  14. Wartość this w funkcjach wyższego rzędu — część 2: Kontynuacja omawiania zachowania "this" w funkcjach wyższego rzędu.
  15. Wartość this w funkcjach wyższego rzędu — część 3: Ostatnia część omawiania zachowania "this" w funkcjach wyższego rzędu.
  16. Projekt 0.1 - funkcja strzałkowa: Zastosowanie funkcji strzałkowej w projekcie licznika.
  17. Tworzenie nowych obiektów na podstawie innych — spread i Object.assign: Wykorzystanie operatora spread i metody Object.assign do tworzenia nowych obiektów.
  18. Object.prototype: Zrozumienie roli Object.prototype w dziedziczeniu w JavaScript.
  19. Object.create: Wykorzystanie metody Object.create do tworzenia obiektów na podstawie innego obiektu.
  20. Projekt 0.2 - toString i valueOf: Implementacja metod toString i valueOf w projekcie licznika.
  21. Projekt 1 - dziedziczenie na przykładzie licznika: Przykład dziedziczenia w projekcie licznika.
  22. Projekt 1.1 - reużywanie obiektów w projekcie: Wykorzystanie reużywalności obiektów w projekcie licznika.
  23. Łańcuch prototypów: Omówienie pojęcia łańcucha prototypów w dziedziczeniu obiektów.
  24. Słowo kluczowe new — własna implementacja: Tworzenie własnej implementacji słowa kluczowego "new" w JavaScript.
  25. Klasy — słowo kluczowe class i constructor: Wykorzystanie słowa kluczowego "class" i konstruktora do tworzenia klas.
  26. Klasy — pola klas i ciekawe właściwości: Przedstawienie pól klas i innych ciekawych właściwości klas w JavaScript.
  27. Dziedziczenie z użyciem klas — extends i super: Implementacja dziedziczenia za pomocą słów kluczowych "extends" i "super".
  28. Projekt 1.2 - użycie klas: Praktyczne zastosowanie klas w projekcie licznika.
  29. Podsumowanie metod tworzenia obiektów: Podsumowanie różnych metod tworzenia obiektów w JavaScript.
  30. Dodatek — Aplikacja w JavaScript: Dodatkowe informacje na temat tworzenia aplikacji w JavaScript.

👀 Zobacz przykładową lekcję z tego modułu kursu:

👨‍💻 Zobacz przykładowy kod z tej lekcji:

💸 Kup kurs

Kup cały kurs CodeRoad – TUTAJ

Kup ten moduł kursu – TUTAJ

💪 Odbierz bezpłatny kurs!

Tagi

Mateusz Choma

I am a scientific mind, passionate about technology, an engineer "squared" - a graduate of two universities in Lublin ;) But mostly, I'm a JS developer.