Dziedziczenie klas w JavaScript

Dziedziczenie klas w JavaScript
Dziedziczenie klasowe W JavaScript jest cenną funkcją, która pozwala na ponowne użycie kodu. Korzystając z dziedziczenia klas, klasa dziecięca będzie miała dostęp do właściwości i metod klasy nadrzędnej w programie JavaScript. Pozwala także stworzyć klasę dziecięcą, która dziedziczy funkcjonalność klasy nadrzędnej, jednocześnie umożliwiając jej zastąpienie.

W tym spisie omówi dziedziczenie klas w JavaScript. Wyjaśnimy również metody cieniowania I dziedziczenie metod statycznych Korzystanie z dziedziczenia klas w JavaScript. Ponadto każda z określonych sekcji zostanie wykazana za pomocą przykładów. A więc zacznijmy!

Dziedziczenie klas w JavaScript

Mechanizm, w którym jedna klasa dziedziczy metody i właściwości innej klasy, jest znany jako Dziedziczenie klasowe. „„Baza" albo "Rodzic„Klasa to ta, której metody i właściwości są dziedziczone, podczas gdy„ ”Pochodny" albo "Dziecko„Klasa dziedzicza funkcjonalność klasy nadrzędnej:

„„rozszerza„Słowo kluczowe służy do ustalenia dziedziczenia klas między klasą rodzica i dzieci oraz„Super„Słowo kluczowe jest wykorzystywane do dostępu do metod i właściwości klasy nadrzędnej.

Przykład: Dziedziczenie klasy w JavaScript

W poniższym przykładzie zdefiniujemy dwie klasy: Osoba I Pracownik, i stwórz dziedzictwo klasowe między nimi, wykorzystując „Super" I "rozszerza" słowa kluczowe.

Przede wszystkim zdefiniujemy klasę nadrzędną lub podstawową o nazwie „Osoba„Posiadanie konstruktora i metody pokazywania ():

Osoba klasowa
konstruktor (nazwa)
Ten.Nazwa = nazwa;

showame ()
konsola.log („moje imię to” + to.nazwa);

W następnym kroku stworzymy klasę dziecięcą nazwaną „Pracownik„Który będzie miał konstruktor i„displayStatus ()" metoda. Ustanowić relację z dziedzictwem klas z „Osoba„Klasa, musisz użyć„rozszerza”Słowo kluczowe i określ nazwę klasy nadrzędnej, czyli„Osoba" w naszym przypadku. Po zrobieniu tego „Pracownik„Klasa odziedziczy„Osoba„Metody i właściwości klasy.

Także w „Pracownik„Konstruktor klas, wywołymy”Super()„Aby nazwać konstruktorem„Osoba„Klasa podczas przekazywania„nazwa" argument:

Pracownik klasy rozszerza osobę
konstruktor (nazwa)
super (nazwa);

displayStatus ()
konsola.Log („Jestem pracownikiem”);

Teraz stworzymy „pracownik„Obiekt„Pracownik„Klasa i przejdzie”Jacek”Jako argumenty nazwy w konstruktorze:

Niech pracownik = nowy pracownik („Jack”);

Stworzone „pracownik„Obiekt odziedziczył wszystkie metody i właściwość„Osoba" klasa. Teraz wywołamy „pokazano ()„Metoda„Osoba„Klasa z tym:

pracownik.pokazano ();

Na koniec nazwiemy „displayStatus ()„Metoda„Pracownik„Obiekt klasy:

pracownik.displayStatus ();

Spójrz na obraz podanego podanego kodu i jego wyjściu:

Jak super () inicjuje „Ten„Obiekt, musisz go najpierw wywołać przed uzyskaniem dostępu do niego. Jeśli jednak spróbujesz uzyskać dostęp „Ten”Przed wykonaniem super () da ci błąd.

Na przykład, aby zainicjować „wiek„Własność„ „Pracownik„Klasa w jego konstruktorze, nazwiemy„Super()”Najpierw, a następnie dostęp do„Ten" obiekt:

Pracownik klasy rozszerza osobę
konstruktor (nazwa, wiek)
super (nazwa);
Ten.wiek = wiek;

wyświetlacz()
konsola.Log („Jestem pracownikiem”);

getage ()
Zwróć to.wiek;

Teraz w momencie tworzenia „Pracownik 1„Obiekt„Pracownik„Klasa, przejdziemy”Jacek" Jak nazwa I "29" Jak wiek Argument dla konstruktora:

niech pracownik1 = nowy pracownik („Jack”, 29);

Następnie, po inicjalizacji, wywołamy „getage ()„Metoda naszej klasy pracowniczej do obejrzenia wartości nieruchomości:

konsola.Log (pracownik 1.getage ());

Sprawdź dane wyjściowe powyższego przykładu:

Metody cieniowania z wykorzystaniem dziedziczenia klas w JavaScript

Metody o tej samej nazwie można zdefiniować zarówno w klasach dla rodziców, jak i dzieci. W takiej sytuacji, gdy wywołasz metodę obiektu klasy dziecka, zaciera metodę obecną w klasie nadrzędnej.

Na przykład poniżej „poniżej”Student„Klasa to klasa dziecięca„Osoba”I na nowo definiuje„pokazano ()" metoda:

Klasa uczeń rozszerza osobę
Constructor ()
super („jack”);

showame ()
konsola.Log („Nazywam się Jack”);

Teraz "pokazano ()„Metoda istnieje w klasie dzieci, a także w klasie rodzicielskiej. Więc kiedy dzwonisz do „pokazano ()”Z„Student„Obiekt klasy, wywoła metodę pokazywaną () zdefiniowaną w klasie dziecięcej:

niech student1 = nowy student ();
Student1.pokazano ();

Oto przykładowy kod z wyjściem:

Jeśli chcesz wywołać metodę klasy nadrzędnej o tej samej nazwie, w klasie dzieci, musisz napisać „Super.MethodName (argumenty)". Na przykład nazwiemy „pokazano ()„Metoda„Osoba”(Parent) klasa, dodając linię„Super.pokazano ()„W naszej klasie dziecięcej pokazano () Metoda:

showame ()
Super.pokazano ();
konsola.log („funkcja dziecięca”);

Teraz, gdy obiekt klasy dziecka wywołuje „pokazano ()”, Przejdzie przez korpus metody klasy dziecięcej, a następnie wywoła metodę klasy nadrzędnej pokazywania (). Po zakończeniu wykonywania metody klasy nadrzędnej pokazywania nazwy () kontrola zostanie przeniesiona z powrotem do metody pokazanej () klasy dzieci:

niech student1 = nowy student ();
Student1.pokazano ();

Na poniższym obrazie możesz zobaczyć wyjście „pokazano ()" metoda:

Dziedziczenie statycznych członków za pomocą dziedziczenia klas w JavaScript

Klasa dziecka może również odziedziczyć metody statyczne i właściwości klasy nadrzędnej. Pomóż nam zrozumieć tę koncepcję, pokazując przykład.

W poniższym przykładzie zdefiniujemy statyczny „Witaj świecie()„Metoda w tym samym”Osoba„Klasa nadrzędna, która po prostu wyprowadzi„Witaj świecie„Ciąg po nazwie:

Osoba klasowa
konstruktor (nazwa)
Ten.Nazwa = nazwa;

showame ()
konsola.log („moje imię to” + to.nazwa);

static Helloworld ()
konsola.Log („Hello World”);

W następnym kroku stworzymy „Pracownik„Jako klasa dziecięca„Osoba”, Aby odziedziczyć metodę i właściwości klasy nadrzędnej, w tym„Witaj świecie()„Metoda statyczna:

Pracownik klasy rozszerza osobę
displayStatus ()
konsola.Log („Jestem pracownikiem”);

Następnie wywołamy metodę statyczną Helloworld () za pośrednictwem „Pracownik" klasa:

Pracownik.Witaj świecie();

Pracownik.Metoda HelloWorld () zostanie wykonana taka sama jak osoba.Metoda HelloWorld ():

Wniosek:

Możesz użyć rozszerza Słowo kluczowe do tworzenia dziedziczenia klas w JavaScript i Super Słowo kluczowe, aby odnosić się do klasy nadrzędnej. Dzięki mechanizmowi dziedziczenia klas w JavaScript klasa dziecięca może uzyskać dostęp do metod i właściwości klasy nadrzędnej. W tym spisie omówiono dziedziczenie klas w JavaScript. Wyjaśniliśmy również metody cieniowania i dziedziczenie metod statycznych przy użyciu dziedziczenia klas w JavaScript. Ponadto każda z określonych sekcji pokazano za pomocą przykładów.