Vererbungsarten in JavaScript

Vererbungsarten in JavaScript
In JavaScript, Nachlass ist ein Mechanismus, der es einem Objekt ermöglicht, alle Methoden und Eigenschaften seines übergeordneten oder Basisobjekts zu erben. Es wird auch als entscheidende Komponente von OOP (objektorientierte Programmierung) angesehen.

Die Idee hinter der Implementierung der Vererbung in JavaScript besteht darin, neue Objekte hinzuzufügen, die aus vorhandenen Objekten abgeleitet werden. Wenn das neu erstellte Objekt zu einem untergeordneten oder abgeleiteten Objekt einer übergeordneten Klasse wird, kann es alle seine Methoden und Eigenschaften erben.

Diese Beschreibung wird diskutieren Typen von Nachlass In JavaScript. So lass uns anfangen!

Vererbungsarten in JavaScript

JavaScript unterstützt die folgenden Arten der Vererbung:

  • Prototypaler Vererbung
  • Pseudoklassische Vererbung
  • Funktionaler Vererbung

Wir werden jeden der genannten Vererbungstypen in den folgenden Abschnitten diskutieren.

Prototypaler Vererbung in JavaScript

Prototypal NachlassMit ”können Sie auf Eigenschaften und Methoden eines übergeordneten Objekts zugreifen. In dieser Art von Vererbung darf ein neu erstelltes Objekt die Eigenschaften und Methode eines vorhandenen Objekts erben. Typischerweise “Objekt.GetPrototypeof ()" Und "Objekt.setPrototypeof ()Kann verwendet werden, um den Prototyp eines Objekts zu erhalten und festzulegen; ES6 standardisieren jedoch die “__Proto__”Accessor -Eigenschaft, die für den ähnlichen Zweck verwendet werden kann.

Syntax der prototypischen Vererbung in JavaScript

MildObject.__Proto__ = parentObject

Hier "MildObject„Repräsentiert das neu erstellte Objekt, das die Eigenschaften und Methoden von“ erbt “ParentObject”.

Beispiel: So implementieren Sie die prototypische Vererbung in JavaScript

Zunächst werden wir zwei benannte Objekte erstellen. “Fahrrad" Und "Gift"Und fügen Sie eine" hinzu "Farbe”Eigentum für die“Fahrrad"Objekt und ein"Name”Eigentum für die“Gift" Objekt:

lass bike =
Farbe blau",
;
lass venom =
Name: "Venom",
;

Durch die Nutzung "__Proto__”Eigentum der“GiftObjekt, wir werden die Eigenschaften der "erben"Fahrrad" Objekt:

Gift.__Proto__ = Fahrrad;

Zuletzt werden wir das anzeigeneigen" (Gift.Name und "vererbt" (Gift.Farbe) Eigenschaftswerte von “Gift" Objekt:

Konsole.log ("Dies ist ein" + Venom.Farbe + "" + Gift.Name);

Pseudoklassisches Vererbung in JavaScript

Die Idee, die implementieren "Pseudoklassisch Nachlass" ist eine zu erstellen “vererbtFunktionen, die die Kinderklasse mit der Elternklasse assoziiert.

Zu diesem Zweck verwendet das pseudoklassische Vererbung:

  • A "Konstrukteur()”Funktion
  • neuOperator zum Erstellen von Instanzen
  • A "PrototypEigenschaft, die die Erbungskette festlegt und der Konstruktorfunktion zugeordnet ist, so dass alle Instanzen die angegebene Eigenschaft erben.

Schauen Sie sich nun das folgende Beispiel an, um das pseudoklassische Vererbung klar zu verstehen.

Beispiel: So implementieren Sie die pseudoklassische Vererbung in JavaScript

Wir werden eine Konstruktorfunktion namens definieren “Fahrrad()”:

Funktion bike ()
Das.name = 'bike';

Als nächstes werden wir eine erstellen “die Info()"Funktion, die von den Kinderobjekten von" vererbt wird "Fahrrad”:

Fahrrad.Prototyp.info = function ()
Konsole.log ('Dies ist ein' + das.Name );
;

In unserem Programm werden wir ein anderes benannte Objekt deklarieren “Gift,"Und nutzen Sie das"Fahrrad.Forderung()Methode zum Aufrufen des Fahrradkonstruktors ():

Funktion venom ()
Fahrrad.rufen Sie (dies);
Das.name = 'venom';

Dann werden wir das verwenden “Prototyp"Eigentum zur Implementierung des pseudoklassischen Vererbung zwischen"GiftObjekt und “Fahrrad" Objekt:

Gift.Prototyp = Objekt.erstellen (Fahrrad.Prototyp);
Gift.Prototyp.Konstruktor = Fahrrad;

Im letzten Schritt die “neu„Der Bediener wird zum Erstellen der beiden Instanzen verwendet“Gift" Und "Fahrrad„:

var venom = new venom ();
var bike = new bike ();

Danach das "die Info()" Die Funktion wird für beide Fälle aufgerufen:

Gift.die Info();
Fahrrad.die Info();

Wie Sie aus der untergegebenen Ausgabe erkennen können, wird die pseudoklassische Vererbung implementiert, und die Instanz “Gift”Erbelt und hingerichtet"die Info()”Funktion erfolgreich:

Funktionaler Vererbung in JavaScript

Der Mechanismus der Erbungseigenschaften durch Anwendung einer Erweiterungsfunktion (Funktion mit generischer Funktionalität) zu einer Objektinstanz ist als "bekannt als"Funktionaler Vererbung”. Die definierte Augmenting -Funktion verwendet eine dynamische Objekterweiterung, um einer Objektinstanz zusätzliche Eigenschaften und Methoden hinzuzufügen. Sie können auch seine verwenden “Schließbereich”Um einige Daten privat zu halten.

Beispiel: So implementieren Sie die funktionale Vererbung in JavaScript

In diesem Beispiel werden wir eine "erstellen"Fahrrad"Objekt mit einem inneren Objekt benannt"X”:

Funktionsrad (Daten)
var x = ;
X.Name = Daten.Name;
Rückkehr x;

Dann erstellen wir ein untergeordnetes untergeordnetes Objekt “Gift"Das legt das Erbe mit dem" fest "Fahrrad" Klasse. Dieses untergeordnete Objekt umfasst eine Augmenting -Funktion “die Info"Die den Zugang zum" haben "Name”Eigentum der“X" Objekt:

Funktion Venom (Daten)
var x = Fahrrad (Daten);
X.info = function ()
Rückgabe "Das ist ein" + x.Name + "Fahrrad";
;
Rückkehr x;

Um das funktionale Vererbung zu implementieren, werden wir erstellen “Gift"Als Kinderinstanz und übergeben Sie den Wert der"NameEigentum als "Daten" Streit:

var venom = venom (name: "venom");

Das Gegebene "Konsole.Protokoll()"Methode holt den Wert der" ab "X.Name"Eigentum vom Elternteil"FahrradObjekt und drucken Sie es auf der Konsole:

Konsole.Protokoll (Gift.die Info());

Ausgang

Das drehte sich um die Arten der Vererbung in JavaScript. Sie können sie weiter nach Ihren Vorlieben untersuchen.

Abschluss

Prototypal Erbschaft, pseudoklassisches Erbe und Funktional Die Vererbung ist unterschiedlich Typen von Nachlass In JavaScript. Eine prototypische Vererbungsart wird mit der “implementiert__Proto__”Eigenschaft, während in funktionaler Vererbung ein erweitern Die Funktion wird definiert, die auf die Eigenschaften der übergeordneten Klasse zugreift. Außerdem die Pseudoklassisch Vererbung verwendet a Konstrukteur() Funktion, “neuOperator und Prototyp Eigenschaft zum Einbetten der Vererbung zwischen zwei Objekten. In diesem Artikel wurden verschiedene Arten der Vererbung in JavaScript besprochen.