Konstruktory obiektów w JavaScript
Konstruktory w JavaScript pomagają wydajnie budować obiekty. Możesz ich używać do tworzenia wielu obiektów o tej samej strukturze.
Funkcje konstruktora
Konstruktor to funkcja służąca do inicjalizacji obiektów. Aby go wywołać, użyj słowa kluczowego new. Jeśli zapomnisz o słowie kluczowym new, funkcja nie zadziała zgodnie z przeznaczeniem.
Nazwy konstruktorów zawsze zaczynaj od wielkiej litery. Pomaga to odróżnić je od zwykłych funkcji.
Przykład:
- Person(name, age)
Object.create()
Możesz użyć Object.create(), aby utworzyć nowy obiekt, wykorzystując istniejący obiekt jako prototyp. Metoda ta ustanawia dziedziczenie między obiektami.
Wartości domyślne
W konstruktorze możesz ustawić wartości domyślne. Dzięki temu Twoje obiekty zawsze będą posiadały poprawne dane. Jeśli nie podasz wartości, konstruktor użyje wartości domyślnej.
Przykład:
function Person(name = "Unknown", age = 0) {
this.name = name;
this.age = age;
}
Prototypy i pamięć
Dodawanie metod do prototypu oszczędza pamięć. Zamiast sprawiać, że każdy obiekt posiada własną kopię funkcji, wszystkie współdzielą jedną wersję pochodzącą z prototypu.
Przykład:
Person.prototype.greet = function() {
console.log("Hello " + this.name);
};
Dziedziczenie
Klasy pozwalają jednej klasie dziedziczyć po innej. Użyj słowa kluczowego super(), aby wywołać konstruktor klasy nadrzędnej. Pozwala to klasom potomnym korzystać z właściwości i metod klas nadrzędnych.
Dlaczego warto używać konstruktorów?
- Ponowne wykorzystanie: Tworzenie wielu obiektów z jednego szablonu.
- Organizacja: Przechowywanie logiki konfiguracji obiektu w jednym miejscu.
- Inicjalizacja: Ustawianie konkretnych wartości natychmiast podczas tworzenia.
- Dziedziczenie: Budowanie złożonych obiektów z prostszych.
- Utrzymanie: Sprawia, że kod jest łatwiejszy do odczytania i zarządzania.
Źródło: https://www.geeksforgeeks.org/javascript/js-constructor-method/ Źródło: https://www.w3schools.com/js/js_object_constructors.asp
Pełny post: https://dev.to/kamalesh_ar_6252544786997/object-constructors-in-javascript-2e96