612
Rozdział 13
Łańcuch prototypów
scotty.bark();
species: "Psowate"
Prototyp Dog
bark()
run()
wag()
name: "Szatan",
breed: "terier szkocki",
weight: 8
handler: "Grzesiu"
ShowDog
league: "Sieciowice"
Prototyp ShowDog
stack()
bait()
groom()
gait()
function bark() {
// kod metody bark
}
function run() {
// kod metody run
}
function wag() {
// kod metody wag
}
function stack() {
// kod metody stack
}
function bait() {
// kod metody bait
}
function gait() {
// kod metody gait
}
function groom() {
// kod metody groom
}
scotty.stack();
scotty.name;
scotty.league;
scotty.species;
Sprawdź każdą z tych
właściwości i metod, aby
przekonać się, w którym
miejscu łańcucha prototypów
można je znaleźć.
NIE TUTAJ NIE TUTAJ NIE TUTAJ
TUTAJ
NIE TUTAJ
NIE TUTAJ NIE TUTAJ
TUTAJ
TUTAJ
TUTAJ
TUTAJ
Imię Szatana jest
zapisane w instancji
ShowDog.
Metoda stack oraz właściwość
league są dziedziczone po
prototypie ShowDog.
Metoda bark oraz właściwość
species są dziedziczone
po naszym początkowym
prototypie Dog.
Prześledź każdą z właściwości
w łańcuchu prototypów i sprawdź,
gdzie została zdefiniowana.
Jeśli nie znajdziesz jej w instancji, będzie to oznaczać,
że jest dziedziczona po prototypie ShowDog lub Dog.
Prototyp Dog
Prototyp ShowDogInstanacja ShowDog
Jak działa dziedziczenie w łańcuchu prototypów?
Przygotowaliśmy łańcuch prototypów dla naszych psów pokazowych, przekonajmy się zatem, jak w tym łańcuchu
działają mechanizmy dziedziczenia. Sprawdź właściwości i metody przedstawione u dołu strony, a następnie w łańcuchu
dziedziczenia spróbuj odnaleźć obiekt, w którym zostały one zdefiniowane.
jesteś tutaj
613
Stosowanie prototypów
Przygotowaliśmy już na lodówce kolejny diagram ze strukturą obiektów, ale ktoś przyszedł i go zupełnie
pomieszał. Znowu! Czy możesz nam pomóc go poukładać? Aby go odtworzyć, potrzebujemy nowej linii
robotów kosmicznych, które dziedziczą właściwości po prototypie Robot. Te nowe roboty przesłaniają
dotychczasowe możliwości funkcjonalne związane z komunikacją głosową i dodają umiejętność pilotażu
oraz właściwość homePlanet. Powodzenia (może się zdarzyć, że nie będziesz musiał użyć wszystkich
magnesików).
Tu narysuj diagram obiektów.
maker: "Ob.Fa.Ro"
Prototyp Robot
speak()
makeCoffee()
blinkLights()
function
speak() {
NRPXQLNDFMDJïRVRZD
}
function speak() {
NRPXQLNDFMDJïRVRZD
// w przestrzeni kosmicznej
}
function pilot() {
// pilotowanie statku
// kosmicznego
}
homePlanet: "Ziemia"
year: 1977
year: 2009
homePlanet: "Tatooine"
pilot()
To jest
prototyp
robotów.
speak()
Prototyp Spece Robot
name: "Robik"
year: 1956
owner: "Dr. Morbius"
Robot
name: "C3PO"
year: 1977
owner: "Luke Skywalker"
Space Robot
name: "Simon"
year: 2009
owner: "Karola Diament"
Space Robot
function
makeCoffee
// podawanie kawy
}
function
blinkLights() {
REVïXJDEï\VNDQLD
}
name: "Robusia"
year: 1962
owner: Grzegorz Jetson
Robot
A to jest prototyp
Space Robot.
Magnesiki z kodem
Get Programowanie w JavaScript Rusz głową! 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.