חזרנו לתוכנית שלנו שמשתמשת בפונקציה בכדי לצייר את וינסטון ארבע פעמים. ושיניתי אותה קצת על מנת להראות באיזה גיל הוא נמצא בכל נקודה של בחיים, ותראו למה בקרוב. אבל קודם אני צריכה לספר לכם משהו על ווינסטון: לוינסטון יש התמכרות לסופגניות. הוא אוכל שלוש מהן ביום. זו הסיבה כנראה לכך שהפנים שלו כל-כך גדולות וצהובות. אז כדי להזהיר וינסטון שסופגניות הן רעות בשבילו, אני רוצה לשנות את התוכנית כך שתראה כמה סופגניות הוא אכל בכל נקודה בחיים שלו. לדוגמה, כשהוא בן שנתיים, זה אומר שהוא אכל 2 פעמים (שנתיים) כפול 365 פעמים (מספר הימים בשנה) כפול 3 פעמים (שלוש פעמים ביום), אז פי שלוש ביום, כפול 365 ימים, לשנתיים. אנחנו רק נציג את זה מתחת לכותרת הזו, אז וואו! אלפיים סופגניות, זה הרבה סופגניות למישהו בן שנתיים. עכשיו כאשר הוא בן 14, בוא נראה, יש לו 3 פעמים ביום כפול 365 ימים כפול 14 שנים. זה חמש עשרה אלף סופגניות. בסדר. אז אני יכולה להמשיך את המתמטיקה הזאת, אבל אני מתחילה לשים לב דפוס. אני חוזרת על החישובים שלי כאן, ואני משנה רק דבר אחד: מספר השנים. בכל פעם שאני רואה קוד שחוזר על עצמו ככה, אני חושבת לעצמי, "הממ, אולי אני יכולה להפוך את זה לפונקציה?" כן, בהחלט, אנחנו יכולים. אז בואו נעשה את זה עכשיו. אני אגדיר את הפונקציה כאן למעלה ואקרא לפונקציה בשם calcTotalDonuts (נכתוב: calcTotalDonuts = function) היא הולכת לקבל פרמטר אחד, את מספר שנים, כי זה הדבר היחיד שאנו משנים כל הזמן בחישוב הזה ואז בפנים, נוכל לעשות את החישוב, לשמור אותו לתוך משתנה, כך שיהיה שהמשתנה יהיה מספר השנים (numYears) כפול 3 פעמים כפול 365. בסדר, אז עכשיו שיש לנו את הפונקציה הזו, אני הולכת להחליף את הביטוי הזה כאן עם calcTotalDonuts - הקריאה לפונקציה - ואני אעביר לה את הערך "2". טוב, עכשיו אנחנו לא רואים את הסך הכל בכלל. המממ, אוקיי, מה קרה? ובכן, הפונקציה שלנו חישבה את הסך הכל כאן, אבל היא לא סיפרה לאף אחד על הסכום. זה כמו שאם מורה קורא לך בכיתה בכדי להשיב על שאלה, ואתה תענה לו בראש שלך אבל אתה מתבייש לומר את התשובה. עשית את העבודה, אבל המורה שלך לעולם לא יידע על כך. אם אנחנו רוצים שהפונקציה תתקשר את הערך למי שקרא לה, הפונקציה צריכה להחזיר את הערכים באופן ספציפי. אז בשביל שפונקציה תחזיר ערך, אנחנו צריכים להגיד מהו סוג הערך שהיא תחזיר, ואז מה הערך עצמו. אולי זה משתנה, או ערך או ביטוי. אז כאן נגיד שאנחנו רוצים להחזיר את זה totalDonuts חזרה, בסדר? אז מי שקורא לאותה הפונקציה הולך לקבל את התשובה הזו. כעת הערך שלנו מוצג, איזה כיף! בעצם אנחנו יכולים לקצר את הפונקציה שלנו, אנחנו אפילו לא צריכים לאחסן אותו לתוך משתנה, נוכל לקחת את הביטוי הזה כאן לשים אותו בערך שהפונקציה מחזירה (ה-return), ואז זו רק שורה אחד של קוד. מגניב. בסדר, אז עכשיו אנו יכולים לעבור ולחשב את מספר הסופגניות הכולל בכל נקודה בחיים על-ידי פשוט לקרוא לפונקציה זו, ולהעביר לה את מספר השנים. בוא נראה, זה (calcTotalDonuts(25, נמקם את זה כראוי, (calcTotalDonuts(65 בסדר! וואו, אז אם הוא יגיע עד גיל 65, הוא יאכל 70,000 סופגניות. זה הרבה סופגניות... אני לא חושבת שוינסטון הולך להגיע לזה... אבל עכשיו כשהפכנו את זה לפונקציה, זה מאוד קל לנו לשנות חלקים ממנה. אם וינסטון יראה את זה ויאמר "רגע, רגע, זה המון. מה אם אני פשוט אוכל אחת ביום? " טוב אנחנו יכולים פשוט ללכת לכאן, לשנות את המספר לאחד, והכל ישתנה. אז זה סך הכל 23,000. עדיין הרבה. אז אולי וינסטון יגיד: "בסדר, בסדר, מה אם אני פשוט אוכל אחת בשבוע?" כן, זה הגיוני, בסדר. אז אנחנו פשוט יכולים לשנות את 365 ל-50, כי יש 50 שבועות בשנה, נכון? טוב, זה הרבה יותר טוב, 3,000 דונאטס, נשמע הגיוני. מעולה, אז כפי שראיתם, עם פונקציות וערכים חוזרים, אנחנו יכולים לחסוך בקוד ולהציל חיים!