Da JavaScript eine prototypbasierte Sprache ist, erben Objekte in der Sprache Attribute und Funktionen von Prototypen. Dieses Entwurfsmuster ist für das Verständnis der objektorientierten Programmierung (OOP) von JavaScript unerlässlich. Das Verständnis von Prototypen und deren Verwendung ist von entscheidender Bedeutung, wenn Sie mehr über JavaScript erfahren möchten. In diesem Beitrag wird die Idee von Prototypen erörtert, wie man sie verwendet und wie sie effektiveren, wiederverwendbareren und optimierten Code ermöglichen.
Bevor wir zu Prototypen übergehen, klären wir zunächst, was ein JavaScript-Objekt ist. Ein JavaScript-Objekt ist im Grunde eine Sammlung von Schlüssel-Wert-Paaren. JavaScript-Objekte sind flexibel und können auf verschiedene Arten erstellt werden, unter anderem mit Factory-Funktionen, Konstruktorfunktionen und Objektliteralen.
Der einfachste Weg, ein Objekt zu erstellen, ist die Verwendung eines Objektliterals:
1 2 3 4 |
|
Eine Konstruktorfunktion wird verwendet, um Instanzen von Objekten mit ähnlichen Eigenschaften zu erstellen:
1 2 3 4 5 6 |
|
Eine Factory-Funktion gibt bei jedem Aufruf ein neues Objekt zurück:
1 2 3 4 5 6 7 8 |
|
JavaScript-Funktionen sind leistungsstark, da sie Objekte zurückgeben können, was zum Erstellen von Instanzen mit bestimmten Eigenschaften und Methoden nützlich ist.
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Einer der Schlüsselaspekte der prototypbasierten Natur von JavaScript ist die Fähigkeit, Methoden für den Prototyp eines Objekts zu definieren. Dies optimiert die Speichernutzung, indem es mehreren Objekten ermöglicht, dieselben Methoden zu verwenden, anstatt sie für jedes Objekt einzeln zu definieren.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
Im obigen Beispiel verwenden sowohl Person1 als auch Person2 dieselbe getDetails-Methode, die im Prototyp definiert ist. Dies bedeutet, dass nicht jeder über eine eigene Kopie der Methode verfügt, wodurch Speicherplatz gespart wird.
Mit der Methode Object.create() können Sie ein neues Objekt erstellen, das von einem bestimmten Prototyp erbt.
1 2 3 4 5 6 7 8 9 |
|
In diesem Fall erbt person von personProto, was bedeutet, dass es Zugriff auf die Greet-Methode hat.
Jedes Objekt in JavaScript hat einen Prototyp, der auch ein Objekt ist. Dieses Prototypobjekt kann über eigene Eigenschaften und Methoden verfügen, die vom Objekt geerbt werden. Diese Vererbungskette wird als Prototypenkette bezeichnet.
1 2 3 4 |
|
In diesem Beispiel ist dog eine Instanz von Animal und erbt die Speak-Methode von Animal.prototype.
Konstruktorfunktionen sind eine gängige Methode zum Erstellen mehrerer Instanzen desselben Objekttyps. Diese Funktionen arbeiten mit Prototypen zusammen, um Methoden instanzübergreifend zu teilen.
1 2 3 4 5 6 |
|
Hier teilen sich book1 und book2 dank der Prototypenvererbung die getDetails-Methode.
Wenn Sie das Schlüsselwort new mit einer Konstruktorfunktion verwenden, wird eine neue Instanz des Objekts erstellt und das Schlüsselwort this an die neue Instanz gebunden.
1 2 3 4 5 6 7 8 |
|
In diesem Fall erstellt das Schlüsselwort new eine neue Instanz von Laptop, und dies verweist auf diese Instanz innerhalb des Konstruktors.
In ES6 führte JavaScript die Klassensyntax ein, die eine bequemere und vertrautere Möglichkeit zum Definieren von Konstruktorfunktionen und Prototypen bietet. Es ist jedoch wichtig zu beachten, dass Klassen in JavaScript nur syntaktischer Zucker gegenüber dem prototypbasierten Vererbungsmodell sind.
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Hier verhält sich die Person-Klasse ähnlich wie das Beispiel der Konstruktorfunktion und der Prototypmethode, jedoch mit einer prägnanteren Syntax.
JavaScript-Arrays sind Objekte und wie alle Objekte erben sie Eigenschaften und Methoden von ihrem Prototyp Array.prototype. Aus diesem Grund können Sie Array-spezifische Methoden wie Push, Pop und Reduce für Arrays aufrufen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
In diesem Beispiel erweitern wir Array.prototype um eine Summenmethode, die von allen Array-Instanzen gemeinsam genutzt wird.
Die Grundlage des objektorientierten Programmierparadigmas von JavaScript sind Prototypen. Sie können effektiveren und wiederverwendbareren Code schreiben, wenn Sie verstehen, wie sie funktionieren. Im Folgenden sind die wichtigsten Schlussfolgerungen aufgeführt:
Sie können die objektorientierten Funktionen von JavaScript vollständig nutzen und wiederverwendbaren, effektiven Code schreiben, indem Sie sich mit Prototypen auskennen. Viel Spaß beim Codieren!
Folgen Sie mir auf: Github Linkedin
Das obige ist der detaillierte Inhalt vonJavaScript-Prototypen verstehen: Ein Schlüssel zur Beherrschung von OOP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!