Dziedziczenie w JavaScript

Dziedziczenie jest ważnym pojęciem w programowaniu obiektowym. W klasycznym dziedziczeniu, metody z klasy bazowej są kopiowane do klasy pochodnej.

W JavaScript, dziedziczenie jest wspierane przez użycie prototypu obiektu. Niektórzy ludzie nazywają to „Prototypową Inheriatancją”, a inni „Delegacją Zachowania”.

Zobaczmy jak możemy osiągnąć funkcjonalność podobną do dziedziczenia w JavaScript używając obiektu prototypowego.

Zacznijmy od klasy Person, która zawiera właściwość FirstName & LastName, jak pokazano poniżej.

W powyższym przykładzie zdefiniowaliśmy klasę Person (funkcję) z właściwościami FirstName & LastName, a także dodaliśmy metodę getFullName do jej obiektu prototypowego.

Teraz chcemy stworzyć klasę Student, która dziedziczy po klasie Person, tak abyśmy nie musieli ponownie definiować właściwości FirstName, LastName oraz metody getFullName() w klasie Student. Poniżej znajduje się klasa Student, która dziedziczy po klasie Person.

Proszę zauważyć, że ustawiliśmy Student.prototype na nowo utworzony obiekt Person. Słowo kluczowe new tworzy obiekt klasy Person, a także przypisuje Person.prototype do obiektu prototypu nowego obiektu, a następnie ostatecznie przypisuje nowo utworzony obiekt do obiektu Student.prototype. Opcjonalnie, można również przypisać Person.prototype do obiektu Student.prototype.

Teraz możemy utworzyć obiekt Student, który używa właściwości i metod Person, jak pokazano poniżej.

W ten sposób możemy zaimplementować dziedziczenie w JavaScript.