JavaScript ist eine leistungsstarke Programmiersprache, mit der Entwickler interaktive und dynamische Webseiten erstellen können. Ein wichtiger Aspekt von JavaScript ist das Vererbungsprinzip, das es Objekten ermöglicht, Eigenschaften und Methoden von anderen Objekten zu erben.
Mit dem Vererbungsprinzip können Sie eine Klassenhierarchie erstellen, in der jede Klasse die Eigenschaften und Methoden ihrer übergeordneten Klasse erbt. Dies ermöglicht es Programmierern, Code effizient zu nutzen und Duplikate zu vermeiden. Wenn wir zum Beispiel eine Vogelklasse haben, die die Eigenschaft "Anzahl der Beine" hat und die Methode "fliegt", können wir eine Unterklasse "Spatz" erstellen, die diese Eigenschaften und Methoden erbt.
Das Schlüsselwort wird verwendet, um das Prinzip der Vererbung in JavaScript zu implementieren extends. Um beispielsweise eine Unterklasse von "Spatz" zu erstellen, verwenden wir die folgende Syntax:
class Воробей extends Птица/ дополнительный код для подкласса Воробей>
Daher erbt die Unterklasse "Spatz" die Eigenschaften und Methoden der Klasse "Vogel". Das Prinzip der Vererbung ermöglicht es, Code effizienter zu organisieren und flexibler und skalierbarer zu machen.
Was ist das Prinzip der Vererbung in JavaScript?
In JavaScript wird das Prinzip der Vererbung mit Prototypen implementiert. Jedes Objekt hat einen Prototyp, der seine Eigenschaften und Methoden definiert. Wenn Sie auf die Eigenschaften und Methoden eines Objekts zugreifen, wenn sie nicht im Objekt selbst gefunden werden, sucht JavaScript automatisch nach ihnen im Prototyp.
Mithilfe von Prototypen können Sie eine strukturelle Struktur von Objekten erstellen, in der jedes Objekt Eigenschaften und Methoden von einem vorherigen Objekt in der Hierarchie erben kann. Dadurch können Sie Code vereinfachen, Funktionen wiederverwenden und Flexibilität beim Ändern und Erweitern der Funktionalität von Objekten in Ihrer Anwendung bieten.
Das Prinzip der Vererbung in JavaScript ist eines der wichtigsten Merkmale der Sprache, das es ermöglicht, objektorientierten Code zu erstellen und Modularität und Abstraktion zu verwenden. In JavaScript gibt es jedoch verschiedene Möglichkeiten, Vererbung zu implementieren, z. B. prototypische Vererbung, klassische Vererbung mit Konstruktorfunktionen und klassenbasierte Vererbung mit der ES6-Syntax.
Warum sollte ich Vererbung in JavaScript verwenden?
1. Wiederverwendung von Code:
Durch Vererbung können Sie eine neue Klasse erstellen, die alle Funktionen der übergeordneten Klasse nutzen kann. Dies vermeidet das Duplizieren von Code und macht es einfacher zu warten und zu modifizieren.
2. Erweiterung der Funktionalität:
Mithilfe der Vererbung können Sie der übergeordneten Klasse neue Eigenschaften und Methoden hinzufügen, indem Sie ihre Funktionalität erweitern, ohne den Quellcode zu ändern. Dadurch können Sie flexiblere und skalierbarere Anwendungen erstellen.
3. Hierarchie und Struktur des Codes:
Mithilfe der Vererbung können Sie Klassen in einer hierarchischen Struktur organisieren, was das Verständnis und die Unterstützung von Code erleichtert. Übergeordnete Klassen können abstrakt sein, indem sie allgemeine Eigenschaften und Methoden für eine Gruppe von Klassen beschreiben, während untergeordnete Klassen spezifische Implementierungen mit eindeutigen Eigenschaften und Methoden sein können.
In JavaScript kann die Vererbung mithilfe der Prototypvererbung oder mithilfe der Klassen und Schlüsselwörter extends und super implementiert werden. In beiden Fällen ermöglicht die Vererbung die Erstellung eines strukturierteren und flexibleren Codes, was die Entwicklung und Unterstützung von JavaScript-Anwendungen vereinfacht.
Beispiele für das Prinzip der Vererbung
Das Vererbungsprinzip in JavaScript ermöglicht es Objekten, Eigenschaften und Methoden von anderen Objekten zu erben, wodurch die Duplizierung von Code reduziert und die Unterstützung erleichtert wird.
Im Folgenden sind einige Beispiele aufgeführt, die das Prinzip der Vererbung veranschaulichen.
- Beispiel 1: Wir haben ein Basis-Shape-Objekt, das Eigenschaften und Methoden enthält, die allen Formen gemeinsam sind. Dadurch können wir bestimmte Formen wie Kreis und Rechteck erstellen, die ihre eigenen einzigartigen Eigenschaften und Methoden haben, aber die allgemeinen Eigenschaften und Methoden des zugrunde liegenden Formobjekts verwenden können.
- Beispiel 2: Wir haben ein grundlegendes Benutzerobjekt (User), das Eigenschaften und Methoden enthält, die allen Benutzern gemeinsam sind. Indem wir davon erben, können wir bestimmte Benutzer verschiedener Typen erstellen, z. B. Admin und UserWithAccess, die über eigene eindeutige Eigenschaften und Methoden verfügen, jedoch die allgemeinen Eigenschaften und Methoden des zugrunde liegenden Benutzerobjekts verwenden können.
- Beispiel 3: Wir haben ein Basisobjekt "Transport", das Eigenschaften und Methoden enthält, die allen Transportarten gemeinsam sind. Indem wir davon erben, können wir bestimmte Fahrzeuge wie "Auto" und "Fahrrad" erstellen, die ihre eigenen einzigartigen Eigenschaften und Methoden haben, aber die allgemeinen Eigenschaften und Methoden des zugrunde liegenden Objekts "Transport" verwenden können.
Alle diese Beispiele zeigen, wie die Vererbung eine Objekthierarchie ermöglicht, in der jedes Objekt allgemeine Eigenschaften und Methoden vom übergeordneten Objekt verwenden und eigene eindeutige Eigenschaften und Methoden hinzufügen kann.
Beispiel 1: Vererbung durch Prototypen
In JavaScript erfolgt die Vererbung über Prototypen. Wenn wir ein neues Objekt erstellen, erbt es die Eigenschaften und Methoden seines Prototyps. Betrachten wir ein einfaches Beispiel, um diesen Mechanismus besser zu verstehen.
Wir haben zwei Objekte: ein Elternteil (Prototyp) und ein Kind (Erbe). Das untergeordnete Objekt erbt die Eigenschaften und Methoden des übergeordneten Objekts.
// Создаем родительский объектvar Parent = function(name) ;// Добавляем метод в прототип родительского объектаParent.prototype.sayHello = function() ;// Создаем дочерний объект и наследуем родительский объектvar Child = function(name) ;// Устанавливаем прототип дочернего объекта равным прототипу родительского объектаChild.prototype = Object.create(Parent.prototype);// Переопределяем метод родительского объекта у дочернего объектаChild.prototype.sayHello = function() ;// Создаем экземпляр дочернего объектаvar child = new Child('Вася');// Вызываем метод дочернего объекта
Als nächstes erstellen wir ein untergeordnetes `Child`-Objekt, das auch den Namen als Konstruktorargument akzeptiert und den Konstruktor des übergeordneten Objekts mit der `call()`-Methode aufruft. Dann setzen wir den Prototyp des untergeordneten Objekts mit der `Object'-Methode auf den Prototyp des übergeordneten Objekts.create()`. Daher erbt das untergeordnete Objekt die Eigenschaften und Methoden des übergeordneten Objekts.
Das Beispiel zeigt also, wie Sie eine Vererbung über Prototypen in JavaScript erstellen und die Methode des übergeordneten Objekts in einem untergeordneten Objekt überschreiben.
Beispiel 2: Vererbung durch Klassen
JavaScript ermöglicht die Vererbung über Klassen mit den Schlüsselwörtern class , extends und super .
Verwenden Sie das Schlüsselwort extends, um eine neue Klasse zu erstellen, die die Funktionalität eines anderen erbt. Um beispielsweise eine Square-Klasse zu erstellen, die die Funktionalität der Shape-Klasse erbt, können Sie den folgenden Code schreiben:
class Shape getColor() >class Square extends Shape getArea() >const mySquare = new Square('red', 5);console.log(mySquare.getColor()); // Output: redconsole.log(mySquare.getArea()); // Output: 25
Im obigen Beispiel erbt die Square-Klasse von der Shape-Klasse. Dazu verwendet die Square-Klassendefinition das Schlüsselwort extends und den Namen der Klasse, von der Shape erbt.
Der Konstruktor der Square-Klasse ruft den Konstruktor der übergeordneten Shape-Klasse mit dem Schlüsselwort super auf. Dadurch können Sie die Farbe basierend auf dem übergebenen Argument festlegen und diese Farbe in der color-Eigenschaft der Square-Klasse speichern.
Die Methoden getColor und getArea werden ebenfalls zur Square-Klasse hinzugefügt und können verwendet werden, um die Farbe bzw. die Fläche eines Quadrats zu erhalten.
Durch die Verwendung der Vererbung über Klassen können Sie Klassenhierarchien erstellen und die Funktionalität vorhandener Klassen erweitern, um eine flexiblere und organisierte Codestruktur bereitzustellen.
Erklärung des Vererbungsprinzips
In JavaScript wird die Vererbung mithilfe von Prototypen implementiert. Jedes Objekt in der Sprache hat eine Eigenschaft __proto__, die einen Verweis auf den Prototyp des Objekts darstellt. Wenn auf eine Eigenschaft oder Methode eines Objekts zugegriffen wird, wenn es nicht gefunden wird, wird in seinem Prototyp gesucht, dann im Prototyp des Prototyps usw., bis die gewünschte Eigenschaft oder Methode gefunden wird oder der Hauptprototyp – Object - erreicht ist.prototype.
Um ein Objekt zu erstellen, das die Eigenschaften und Methoden eines anderen Objekts erbt, müssen Sie seinen Prototyp (die Eigenschaft __proto__) auf dieses Objekt festlegen. In ECMAScript 2015 kann ein Objektprototyp explizit mit der Object-Methode angegeben werden.create:
let parentObj = >;let childObj = Object.create(parentObj);childObj.prop; // 'value'childObj.method(); // 'Method'
Daher erbt childObj die prop-Eigenschaft und die method-Methode des parentObj-Objekts. Wenn childObj versucht, auf eine Eigenschaft oder Methode zuzugreifen, die er selbst nicht hat, wird die Suche im Prototyp-Objekt parentObj fortgesetzt.
In der Praxis ermöglicht das Prinzip der Vererbung das einfache Erstellen einer Hierarchie von Objekten, indem ihre Eigenschaften und Funktionen nach verschiedenen Prototypen gruppiert werden. Dies fördert Code, der einfacher zu pflegen, zu ändern und logisch zu organisieren ist.