jesteś tutaj
589
Stosowanie prototypów
Czym są prototypy?
W języku JavaScript obiekty mogą dziedziczyć właściwości i zachowania
po innych obiektach. Precyzyjniej rzecz ujmując, możemy powiedzieć, że
JavaScript korzysta z rozwiązania nazywanego
dziedziczeniem prototypów, przy
czym
prototypem nazywany jest obiekt, po którym są dziedziczone zachowania.
Celem takiego rozwiązania jest zapewnienie możliwości dziedziczenia
i wielokrotnego stosowania istniejących właściwości (w tym także metod),
a jednocześnie umożliwienie rozszerzania ich w nowych obiektach.
Wszystko to jest dosyć abstrakcyjne, więc przeanalizujemy to na przykładzie.
Zaczniemy od prototypu obiektu reprezentującego psa, który mógłby
wyglądać tak.
Jestem prototypem
psa. Mam właściwości,
których potrzebuje każdy
pies, i możesz mnie używać
jako prototypu do utworzenia
dowolnego psa.
species: "Psowate"
Prototyp Dog
bark()
run()
wag()
Prototyp zawiera właściwości
przydatne dla każdego psa.
Zawiera także metody,
których chcemy
używać we wszystkich
tworzonych psach.
Oto prototyp psa. To obiekt zawierający
wszystkie właściwości i metody, których
mogą potrzebować wszystkie inne psy.
Prototyp nie zawiera imienia psa, jego
rasy ani wagi, gdyż właściwości te będą
unikalne dla każdego psa i określane dla
konkretnego psa tworzonego na podstawie
prototypu.
Kiedy jeden obiekt dziedziczy
po innym, uzyskuje dostęp do
wszystkich jego właściwości
i metod.
Skoro już dysponujemy dobrym prototypem psa, możemy utworzyć
obiekt psa dziedziczący właściwości po tym prototypie. Nasz obiekt
rozszerzy także ten prototyp, dodając do niego właściwości i zachowania
charakterystyczne dla konkretnego psa. Przykładowo wiemy już, że
dodamy do niego informacje o imieniu, rasie oraz wadze każdego
tworzonego psa.
Przekonasz się, że jeśli którykolwiek z tych psów będzie chciał szczekać,
biegać lub merdać ogonem, będzie mógł uzyskać te zachowania
z prototypu, gdyż po nim je odziedziczy. A zatem utwórzmy kilka
obiektów psów, aby się przekonać, jak to wszystko działa.

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.