Metody obiektowe (wersja wideo)
-
0:01 - 0:04Już wiemy, jak stworzyć typ obiektu
-
0:04 - 0:06i dwa obiekty winstonokształtne,
-
0:06 - 0:09a potem uruchomić je konstruktorami.
-
0:10 - 0:14Typ obiektu nie musi być
kojarzony z właściwościami. -
0:14 - 0:16Może mieć też funkcjonalność.
-
0:16 - 0:19Pomyślcie o świecie
i typach obiektów w nim. -
0:19 - 0:20Weźmy np. ludzi.
-
0:20 - 0:22Wszyscy mamy wzrost i wiek,
-
0:22 - 0:26wykonujemy też czynności:
śpimy, jemy, programujemy. -
0:26 - 0:29Chcemy skojarzyć te funkcje
-
0:29 - 0:31z typami obiektów.
-
0:31 - 0:34Poprzedni odcinek skończyliśmy tak:
-
0:35 - 0:37mamy funkcję „drawWinston”,
-
0:37 - 0:40którą przywołujemy
przy obu obiektach „Winston”. -
0:40 - 0:43Czy nie byłoby świetnie
przyłączyć ją -
0:43 - 0:45do typu obiektu „Winston”?
-
0:46 - 0:48Można to zrobić z łatwością.
-
0:49 - 0:52Pod konstruktorem napiszemy:
„Winston”... -
0:52 - 0:55(wielkie „w”), „. prototype”.
-
0:56 - 0:59Słowa „prototype” jeszcze
w programowaniu nie widzieliście. -
0:59 - 1:04To właściwość obiektu,
-
1:04 - 1:06do której możemy dołączać funkcje.
-
1:06 - 1:10A każda instancja tego obiektu
-
1:10 - 1:13będzie powiązana z tymi funkcjami.
-
1:13 - 1:16Piszemy „.prototype”,
potem jest kropka, -
1:16 - 1:19a po niej nazwa funkcji, np. „draw”.
-
1:19 - 1:23Dalej znak równości i możemy wziąć
-
1:23 - 1:24kod „drawWinston”,
-
1:25 - 1:27który umieścimy tutaj.
-
1:29 - 1:33Przypisaliśmy funkcję „draw”
-
1:33 - 1:35do prototypu Winstona.
-
1:35 - 1:37Możemy przywoływać funkcję „draw”
-
1:37 - 1:40do każdego obiektu
typu Winstona. -
1:40 - 1:44Powinno to działać przy nastoletnim
i dorosłym Winstonie. -
1:45 - 1:49Funkcję, którą możemy
przywołać do obiektu, -
1:49 - 1:51nazywamy metodą.
-
1:51 - 1:54Będę używać tego słowa.
-
1:55 - 1:58To jest metoda rysowania.
W porządku. -
1:58 - 2:01Skasujemy to i to...
-
2:01 - 2:04Spróbujmy przywołać „draw”.
-
2:04 - 2:06Mamy: „winstonTeen.draw”.
-
2:07 - 2:10Wyskoczył komunikat błędu.
-
2:10 - 2:14„WinstObject niezdefiniowany”.
No dobrze. -
2:15 - 2:18Wcześniej wprowadzaliśmy
ten argument do „drawWinston”, -
2:19 - 2:21czyli do obiektu „Winston”.
-
2:21 - 2:23Już tego nie robimy.
-
2:23 - 2:26Możemy to zmienić,
-
2:26 - 2:28i co tu wprowadzimy?
-
2:29 - 2:31Trzeba dać „winstonTeen”. OK.
-
2:31 - 2:34Udało się, ale to głupie.
-
2:34 - 2:38Przywołuję funkcję „draw”
do obiektu, -
2:38 - 2:42więc nie powinnam dodatkowo
obiektu wprowadzać! -
2:42 - 2:43Dwa razy to samo!
-
2:44 - 2:46Nie powinniśmy tego robić.
-
2:46 - 2:48Skasujmy to więc i pomyślmy.
-
2:49 - 2:51Gdy jesteśmy wewnątrz obiektu,
-
2:51 - 2:54jak dostać się do jego właściwości?
-
2:54 - 2:56Spójrzmy na konstruktora.
-
2:57 - 2:59Przypomnijmy sobie
hasło „this”. Aha! -
3:00 - 3:03A gdybyśmy zmienili to w to?
-
3:04 - 3:07Zmieniamy „winstObject”
w „this”. -
3:08 - 3:11Jesteśmy wewnątrz obiektu.
-
3:11 - 3:14Ta funkcja łączy się z obiektem;
-
3:14 - 3:17„this” odnosi się
do obiektu bieżącego. -
3:17 - 3:19Możemy więc napisać „this”
-
3:19 - 3:23i zyskamy dostęp do wszystkich
właściwości bieżącego obiektu. -
3:23 - 3:26Udało się! Świetnie, prawda?
-
3:27 - 3:30Teraz napiszmy:
„winstonAdult.draw”. -
3:32 - 3:36Jest! Mamy dostęp
do właściwości „winstonAdult”, -
3:36 - 3:38bo ten obiekt został przywołany.
-
3:38 - 3:41To jest rewelacyjne w haśle „this”.
-
3:41 - 3:44Chociaż czasami trudno je wymówić.
-
3:46 - 3:49Było wesoło, więc dodajmy
kolejną metodę. -
3:50 - 3:52Co jeszcze może robić Winston?
-
3:52 - 3:54Niech mówi.
-
3:54 - 3:56Dajmy: „Winston.prototype.talk”.
-
3:56 - 4:00Do prototypu możemy dodać
tyle metod, ile chcemy. -
4:00 - 4:05Napiszmy: „Jestem Winston!”.
-
4:05 - 4:09A potem jeszcze: „this.x+20”
-
4:09 - 4:12i „this.y+150”.
-
4:13 - 4:16Nic się nie wydarzyło,
-
4:16 - 4:20bo jeszcze nie przywołałam funkcji.
-
4:20 - 4:21Niech nastolatek mówi.
-
4:21 - 4:24„winstonTeen.talk”.
Gada cały czas. -
4:25 - 4:30„Jestem Winston!”.
A teraz niech mówi dorosły. -
4:30 - 4:32Hura!
-
4:32 - 4:35Mamy teraz typ obiektu „Winston”
-
4:35 - 4:38z właściwościami: nazwą,
wiekiem, „x” i „y”. -
4:38 - 4:40I jest funkcjonalny.
-
4:40 - 4:45Zachowuje się różnie
w zależności od właściwości. -
4:45 - 4:48Możemy stworzyć tyle
instancji Winstona, ile chcemy, -
4:48 - 4:51i przywołać dowolną z metod.
-
4:51 - 4:53Nieźle, co?
- Title:
- Metody obiektowe (wersja wideo)
- Description:
-
To tylko zapis naszych interaktywnych sesji poświęconych kodowaniu, stworzony by ułatwić ich przełożenie na inne języki. Polecamy obejrzenie tych sesji bezpośrednio pod adresem: https://pl.khanacademy.org/cs/programming/
- Video Language:
- English
- Duration:
- 04:54
Lech Mankiewicz edited Polish subtitles for Object Methods (Video Version) | ||
Lech Mankiewicz edited Polish subtitles for Object Methods (Video Version) |