Sie sind hier � 571
Prototypen verwenden
Wie die Vererbung funktioniert
Wie bringen wir Hunde zum Bellen, wenn ihre Instanzen keine eigene bark-
Methode besitzen, sondern der Prototyp? Mithilfe der Vererbung. Wenn Sie
eine Methode an einem Objekt aufrufen und die Methode nicht gefunden
werden konnte, überprüfen Sie den Prototyp. Und zwar so:
species: "Hund"
Dog Prototype
bark()
run()
wag()
fido.bark();
Keine bark-Methode zu
finden. Sehen wir mal OBEN
im Prototyp nach …
1
Für den Anfang brauchen wir etwas Code.
Wie wäre es mit einem Aufruf der bark-
Methode eines Hund-Objekts, wie hier:
2
Um diesen Code auszuwerten,
suchen wir zunächst in der
fido-Instanz nach einer bark-
Methode. Dort ist sie aber nicht.
name: "Fido"
breed: "Mischling"
weight: 38
Dog
3
Wenn wir in der fido-Instanz keine
bark-Methode finden können,
sehen wir als Nächstes in seinem
Prototyp nach.
4
Beim Überprüfen des Hund-
Prototyps sehen wir, dass er
eine bark-Methode besitzt.
5
Und sobald wir die bark-
Methode gefunden haben,
rufen wir sie auf, und Fido
bellt.
function bark() {
// Code zum Bellen
}
Ein simpler Aufruf der
bark-Methode des
fido-Objekts.
Eigenschaften funktionieren genauso. Wenn wir Code schreiben, der
fido.name benötigt, kommt der Wert aus dem fido-Objekt. Auch wenn
der Wert von fido.species gebraucht wird, überprüfen wir zunächst das
fido-Objekt. Wurde der Wert dort nicht gefunden, sehen wir im Hund-
Prototyp (DogPrototype) nach (wo der Wert gefunden wird).
function bark() {
// Code zum Bellen}
function bark() {
// Code zum Bellen}
Beginnen Sie hier
und folgen Sie den
Nummern
1, 2, 3, 4, 5.
572 Kapitel 13
Einen Prototyp für die Vererbung nutzen
Können wir die Hundefabrik wieder
starten, nachdem Sie dieses neumodische
Vererbungsdings im Griff haben?
species: "Hund"
Dog Prototype
bark()
run()
wag()
function bark() {
// Code zum
Bellen
}
name: "Smokey"
breed: "Chow-Chow"
weight: 20
Dog
name: "Woofy"
breed: "Mischling"
weight: 10
Dog
name: "LadyBug"
breed: "Jagdhund"
weight: 27.5
Dog
name: "Barnaby"
breed:
"Basset"
weight: 27.5
Dog
name: "Fido"
breed: "Mischling"
weight: 17
Dog
name: "Max"
breed: "Hotdog"
weight: 17
Dog
Jetzt haben wir nur
noch eine bark-
Methode. Viel besser.
Er hat bereits begon-
nen, eine Menge Hunde
herzustellen. Hier ein
paar bereits vorhandene
Instanzen, die alle vom
Hund-Prototyp erben.
Jeder Hund hat individuelle Eigenschaften
für Name, Rasse und Gewicht, nutzt
aber für die species-Eigenschaft und die
bark-Methode den Prototyp.
Vielen Dank! Bevor Sie die
Vererbung genutzt haben,
wäre ich fast gestorben.
Mit dem Wissen um die Vererbung können wir jetzt viele
Hunde auf einmal erzeugen. Alle Hunde können immer
noch bellen. Allerdings stellt der Hund-Prototyp die bark-
Methode direkt zur Verfügung. Dadurch wird nicht nur der
Code wiederverwendet, sondern alle Hund-Instanzen nutzen
während der Laufzeit die gleiche bark-Methode, wodurch der
Overhead während der Laufzeit wegfällt.
Sie werden feststellen, dass Sie durch die Verwendung von
Prototypen schnell Objekte erstellen können, die Code
wiederverwenden und trotzdem durch neues Verhalten und
neue Eigenschaften erweitert werden können.
function bark() {
// Code zum
Bellen
}
function bark() {
// Code zum
Bellen
}
Get JavaScript-Programmierung von Kopf bis Fuß now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.