592 Kapitel 13
Die Prototypenkette
Die Prototypenkette für Ausstellungshunde ist fertig. Jetzt können wir erforschen, wie die Vererbung in
diesem Kontext funktioniert. Sehen Sie sich die Eigenschaften und Methoden am Ende dieser Seite an
und folgen Sie ihnen entlang der Prototypenkette bis zu dem Objekt, in dem sie definiert werden.
Die Funktionsweise der Vererbung in der Prototypenkette
scotty.bark();
species: "Hund"
Dog Prototype
bark()
run()
wag()
name: "Scotty"
breed:
"Scottish Terrier"
weight: 7.5
handler: "Cookie"
ShowDog
league: "Webville"
ShowDog Prototype
stack()
bait()
groom()
gait()
function bark() {
// code to bark
}
function run() {
// code to bark
}
function wag() {
// code to bark
}
function stack() {
// Code zum
Aufstellen
}
function bait() {
// Köder-Code
}
function gait() {
// Gangart-Code
}
function groom() {
// Hundefrisör-
Code
}
scotty.stack();
scotty.name;
scotty.league;
scotty.species;
Überprüfen Sie, woher
in der Prototypenkette
diese Methoden und
Eigenschaften stammen.
HIER NICHT HIER NICHT HIER NICHTHIER HIER NICHT
HIER NICHT HIER NICHT
HIER
HIER
HIER
HIER
Scottys Name steht
in der ShowDog-
Instanz.
Die stack-Methode (»Aufstellung«)
und die Eigenschaft league (»Liga«)
werden vom ShowDog-Prototyp geerbt.
Die bark-Methode und
die species-Eigenschaften
stammen vom ursprünglichen
Dog-Prototyp.
Verfolgen Sie die Prototypenkette
für die einzelnen Eigenschaften, um
festzustellen, woher sie stammen.
Wenn sie nicht in der Instanz gefunden werden können, müssen sie
entweder vom ShowDog- oder vom Dog-Prototyp abstammen.
Dog-Prototyp
ShowDog-PrototypShowDog-Instanz
Sie sind hier 593
Prototypen verwenden
Codemagneten
Gerade hatten wir ein neues Diagramm am Kühlschrank, da kommt auch schon der nächste Depp
und bringt es durcheinander. Schon wieder! Können Sie uns helfen, das Diagramm wieder in Ord-
nung zu bringen? Hierfür brauchen wir eine Reihe von Weltraumrobotern (Space Robots). Diese
überschreiben die Sprachfähigkeiten (speak) normaler Roboter, und erweitern ihre Fähigkeiten um
die Möglichkeit, ein Raumschiff zu steuern (pilot), und definieren außerdem einen Heimatplaneten
(homePlanet). Viel Glück. (Möglicherweise werden nicht alle Magneten gebraucht.)
Zeichnen Sie hier das
Objektdiagramm.
maker: "ObjectsRUs"
Robot Prototype
speak()
makeCoffee()
blinkLights()
function
speak() {
// Code to speak
}
function speak() {
// Code zum Sprechen
// im Weltraum
}
function
pilot() {
// Code zum Steuern
// von Raumschiffen
}
homePlanet: "Erde"
year: 1977
year: 2009
homePlanet: "Tatooine"
pilot()
Dies ist der
Prototyp für
Roboter.
speak()
Space Robot Prototype
name: "Robby"
year: 1956
owner: "Dr. Morbius"
Robot
name: "C3PO"
year: 1977
owner: "L. Skywalker"
Space Robot
name: "Simon"
year: 2009
owner: "Carla Diana"
Space Robot
function
makeCoffee() {
// Code 4 coffee
}
function
blinklights() {
// Blinkencode}
name: "Rosie"
year: 1962
owner: "George Jetson"
Robot
Und hier ist der
Prototyp für die
Weltraumroboter.

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.