Wracamy do programu, który wykorzystuje funkcję i rysuje Winstona cztery razy. Zmieniłam to tak, żeby pokazać jego wiek w każdym etapie życia. Niedługo zobaczycie, dlaczego. Najpierw powiem wam coś o Winstonie. Jest uzależniony od pączków. Je trzy pączki dziennie. Pewnie dlatego ma tak dużą i żółtą twarz. Żeby mu powiedzieć, jak szkodliwe są pączki, zmienię program i pokażę, ile zjadł pączków w różnych etapach życia. Np. gdy miał 2 lata... to zjadł już... 3 razy 365 razy 2. 3 pączki dziennie razy 365 dni razy 2 lata. Wyświetlimy to pod nagłówkiem. Dwa tysiące pączków! Dużo jak na dwulatka! Tu ma 14 lat. Zjadł 3 razy 365 razy 14. To 15 tysięcy pączków. Mogłabym liczyć dalej, ale dostrzegam schemat. Powtarzam obliczenia i zmieniam tylko jedno: liczbę lat. Gdy widzę taki powtarzalny kod, myślę: „Czy mogłabym zrobić z tego funkcję?”. Tak, to możliwe. Zróbmy więc to teraz. Zdefiniuję funkcję. Nazwę ją „calcTotalDonuts = function”. Będzie przyjmować jeden parametr, liczbę lat. Bo tylko to zmieniamy w tych obliczeniach. Obliczymy to wewnątrz i zachowamy w zmiennej. Mamy: 3 razy 365 razy „numYears” (liczba lat). Gdy już mamy tę funkcję, zastąpię to wyrażenie przywołaniem funkcji „calcTotalDonuts”, i wprowadzę „2”. No i nie widzimy żadnej sumy. Co się stało? Nasza funkcja obliczyła sumę, tutaj, ale nikomu o niej nie powiedziała. Jakby nauczyciel wywołał was do odpowiedzi, a wy udzielacie jej w głowie, bo głośno się wstydzicie. Uczyliście się, a nauczyciel się o tym nie dowie. Jeśli chcemy, by funkcja pokazywała wartość, musi ona tę wartość zwrócić. Żeby funkcja zwróciła wartość, musimy wpisać „return”, i określić, co. Zmienną, wartość, wyrażenie... Tu napiszemy: „return totalDonuts”. Kto przywołał tę funkcję, uzyska odpowiedź. I wartość już widać! Możemy skrócić funkcję, nie trzymać jej w zmiennej. Bierzemy to wyrażenie, umieszczamy je w „zwróć” i mamy jedną linijkę. Ładnie! Możemy teraz obliczyć, ile pączków zjadł w każdym etapie życia, przywołując tę funkcję i wprowadzając liczbę lat. Mamy więc „calcTotalDonuts(25)”, umieśćmy to... „calcTotalDonuts(65)”... Jeśli dożyje 65 lat, to łącznie zje 70 tysięcy pączków. Dużo! Chyba nie da rady. Gdy już zrobiliśmy z tego funkcję, będziemy mogli łatwo zmieniać jej części. Winston to widzi i mówi: „Dużo! A gdybym jadł jednego pączka dziennie?”. Wejdźmy tu, zmieńmy jedną liczbę i zmieni się wszystko. Jest 23 tysiące. Nadal dużo. Winston mówi „Dobrze, może więc jeden tygodniowo?”. To już rozsądne. Zmieniamy 365 na 50, bo rok ma ok. 50 tygodni. Tak już lepiej, prawda? 3 tysiące pączków. To rozsądne. Znając funkcje i zwracane wartości uratujemy program i życie innych osób!