Rodzaje dziedziczenia w JavaScript

Rodzaje dziedziczenia w JavaScript
W JavaScript, Dziedzictwo jest mechanizmem, który pozwala obiektowi odziedziczyć wszystkie metody i właściwości jego obiektu nadrzędnego lub podstawowego. Jest również uważany za kluczowy składnik OOP (programowanie zorientowane na obiekt).

Ideą wdrażania dziedziczenia w JavaScript jest dodanie nowych obiektów pochodzących z istniejących obiektów. Kiedy nowo utworzony obiekt staje się dzieckiem lub pochodnym przedmiotem klasy nadrzędnej, może odziedziczyć wszystkie jego metody i właściwości.

W tym spisie omówi typy z Dziedzictwo W JavaScript. A więc zacznijmy!

Rodzaje dziedziczenia w JavaScript

JavaScript obsługuje następujące rodzaje dziedziczenia:

  • Prototypowe dziedziczenie
  • Pseudoklasyczne dziedzictwo
  • Dziedziczenie funkcjonalne

W następnych sekcjach omówimy każdy z wymienionych typów dziedziczenia.

Prototypowe dziedziczenie w JavaScript

"Prototypowy Dziedzictwo„Umożliwia dostęp do właściwości i metod obiektu nadrzędnego. W tego rodzaju dziedzictwie nowo utworzony obiekt może odziedziczyć właściwości i metodę istniejącego obiektu. Zazwyczaj „Obiekt.getPrototypeof ()" I "Obiekt.setPrototypeof ()”Można użyć do uzyskania i ustawienia prototypu obiektu; Jednak ES6 standaryzuj „__proto__„Proporca, którą można wykorzystać w podobnym celu.

Składnia prototypowego dziedziczenia w JavaScript

ChildObject.__proto__ = paryBject

Tutaj "ChildObject”Reprezentuje nowo utworzony obiekt, który dziedziczy właściwości i metody„ParentObject".

Przykład: Jak wdrożyć prototypowe dziedzictwo w JavaScript

Po pierwsze, utworzymy dwa obiekty o nazwie „Rower" I "Jad”I dodaj„kolor„Nieruchomość„Rower”Obiekt i„nazwa„Nieruchomość„Jad" obiekt:

Niech rower =
kolor niebieski",
;
Niech Venom =
Nazwa: „Venom”,
;

Używając "__proto__„Własność„ „Jad„Obiekt, odziedziczymy właściwości„Rower" obiekt:

Jad.__proto__ = rower;

Na koniec wyświetlimy „własny" (Jad.imię i "dziedziczny" (Jad.Kolor) Wartości właściwości „Jad" obiekt:

konsola.Log („to jest jad”.kolor + "" + jad.nazwa);

Pseudoklasyczne dziedziczenie w JavaScript

Pomysł wdrożenia „Pseudoklasyczne Dziedzictwo" jest stworzenie „dziedziczny„Funkcja, która pomaga w łączeniu klasy dzieci z klasą rodziców.

W tym celu pseudoklasyczne dziedzictwo wykorzystuje:

  • A "konstruktor()”Funkcja
  • "nowy„Operator do tworzenia instancji
  • A "prototyp„Własność, która ustanawia łańcuch dziedziczenia i jest przypisywana do funkcji konstruktora, aby wszystkie instancje odziedziczyły określoną właściwość.

Teraz sprawdź pod względem podanego przykładu, aby jasno zrozumieć pseudoklasyczne dziedzictwo.

Przykład: Jak wdrożyć pseudoklasyczne dziedzictwo w JavaScript

Zdefiniujemy funkcję konstruktora o nazwie „Rower()”:

funkcja rower ()
Ten.name = „rower”;

Następnie stworzymy „informacje ()„Funkcja, która zostanie odziedziczona przez obiekty dziecięce„Rower”:

Rower.prototyp.info = funkcja ()
konsola.log („to jest” + to.nazwa );
;

W naszym programie zadeklarujemy inny obiekt o nazwie „Jad,”I wykorzystaj„Rower.dzwonić()„Metoda wywoływania konstruktora rowerowego ():

funkcja enom ()
Rower.zadzwoń (this);
Ten.name = „Venom”;

Następnie użyjemy „prototyp„Własność w celu wdrożenia pseudoklasycznego dziedziczenia między„Jad”Obiekt i„Rower" obiekt:

Jad.Prototype = obiekt.Utwórz (rower.prototyp);
Jad.prototyp.konstruktor = rower;

W ostatnim kroku „nowy„Operator jest wykorzystywany do tworzenia dwóch instancji”jad" I "rower„:

var enom = new Venom ();
var rowe = nowy rower ();

Po zrobieniu tego „info () ” Funkcja jest wywoływana dla obu przypadków:

jad.info ();
rower.info ();

Jak widać z podania poniżej, pseudoklasyczne dziedzictwo jest wdrażane, a instancja „jad”Odziedziczyłem i wykonał„informacje ()„Funkcja pomyślnie:

Funkcjonalne dziedziczenie w JavaScript

Mechanizm dziedziczenia nieruchomości poprzez zastosowanie Funkcja rozszerzania (funkcja o ogólnej funkcji) do instancji obiektu jest znana jako „Dziedziczenie funkcjonalne". Zdefiniowana funkcja rozszerzania wykorzystuje rozszerzenie obiektów dynamicznych, aby dodać dodatkowe właściwości i metody do instancji obiektu. Możesz także użyć jego „Zamknięcie zamknięcia„Aby zapewnić prywatne dane.

Przykład: Jak zaimplementować dziedziczenie funkcjonalne w JavaScript

W tym przykładzie utworzymy „Rower„Obiekt o obiekcie wewnętrznym o nazwie„X”:

rower funkcyjny (dane)
var x = ;
X.Nazwa = dane.nazwa;
powrót x;

Następnie utworzymy obiekt dziecięcy o nazwie „Jad”, Który ustanawia dziedzictwo„Rower" klasa. Ten obiekt dziecięcy będzie obejmował funkcję rozszerzania „informacje„Który może mieć dostęp do„nazwa„Własność„ „X" obiekt:

Funkcja Venom (dane)
var x = rower (dane);
X.info = funkcja ()
zwrócić „to jest” + x.Nazwa + „Rower”;
;
powrót x;

Aby zaimplementować dziedziczenie funkcjonalne, stworzymy „jad„Jako instancja dziecięca i przekazuj wartość„nazwa„Nieruchomość jako„dane" argument:

var enom = enom (name: „venom”);

Dana "konsola.dziennik()„Metoda przyniesie wartość„X.nazwa„Nieruchomość od rodzica”Rower„Obiekt i wydrukuj na konsoli:

konsola.Log (jad.info ());

Wyjście

To chodziło o rodzaje dziedziczenia w JavaScript. Możesz je dalej odkrywać zgodnie z preferencjami.

Wniosek

Prototypowy Dziedzictwo, pseudoklasyczne dziedzictwo i Funkcjonalny Dziedziczenie jest inne typy z Dziedzictwo W JavaScript. Prototypowy rodzaj dziedziczenia jest wdrażany za pomocą „__proto__„Własność, podczas gdy w dziedziczeniu funkcjonalnym, rozszerzenie Funkcja jest zdefiniowana, która uzyskuje dostęp do właściwości klasy nadrzędnej. Ponadto Pseudoklasyczne Dziedzictwo wykorzystuje konstruktor() Funkcja, „nowy„Operator i prototyp właściwość do osadzenia dziedziczenia między dwoma obiektami. W tym spisie omówiono różne rodzaje dziedziczenia w JavaScript.