כתבתי תוכנה כדי לספר לכם פרטים עסיסיים
על ווינסטון, אבל לא יותר מדי כי ווינסטון מעדיף לשמור על קצת
מסתורין. זו פשוט הדרך של ווינסטון. אז, בואו
נראה איך כתבתי את התוכנה הזו. יצרתי כמה משתנים למעלה, כדי לשמור
חלקי מידע עליו. המשתנה הראשון מחזיק מספר - הגיל שלו, המשתנה השני מחזיק
מחרוזת - צבע העיניים שלו, המשתנה השלישי מחזיק מערך של מחרוזות,
שהם דברים שהוא אוהב לעשות, ושני המשתנים האחרונים מחזיקים
מחרוזות המתארות היכן הוא נולד.
אחר כך כאן למטה, הדפסתי כל אחד מהמשתנים באמצעות פקודת ה-text, ועל ידי שימוש בשם המשתנה.
וכמובן בשביל המערך, אני צריכה לגשת לכל איבר במערך
באמצעות סוגריים מרובעים. מגניב. עכשיו
כל חמשת המשתנים האלו מתארים מידע על אותו הדבר - ווינסטון.
אבל המשתנים לא יודעים שהם קשורים לאותו הדבר.
ואתם יודעים, בשפת Javascript, כשאתם רוצים
לשמור מספר חלקי מידע קשורים, יש לנו דרך טובה יותר
לשמור אותם - דרך נחמדה שנקראת אובייקט.
מה שזה אומר זה שבמקום חמישה משתנים, יש לנו משתנה יחיד
שמכיל את כל המידע הזה - די מגניב.
בואו ננסה את זה עם המידע של ווינסטון. ראשית, ניצור את המשתנה
ונקרא לו ווינסטון. ואז
שמים סימן פתיחת סוגריים מסולסלים ({) - שימו לב שזה סוגריים מסולסלים, לא מרובעים -
ואז סימן נקודה-פסיק (;). יצרנו אובייקט
אבל עדיין אין בו שום מידע.
כדי להוסיף קצת מידע, אנחנו צריכים להוסיף מאפיינים.
לכל מאפיין יש מפתח וערך. למשל, עבור גיל נרשום - age: 19
אוקיי. עכשיו בשביל צבע העיניים, נוסיף
פסיק, ואז: eyes: "black". אוקיי, מגניב
עכשיו יש לווינסטון שני מאפיינים בתוך האובייקט.
עבור תחביבים, נכתוב - likes:
ונעתיק את זה מכאן למעלה..
יפה. בואו נסתכל על זה. לווינסטון יש שלושה מאפיינים.
לכל מאפיין יש מפתח - מה שנמצא בצד שמאל
וערך - מה שנמצא בצד ימין
במקרה של המפתח, הוא צריך לענות על אותם כללים כמו שמות משתנים ב-Javascript.
ללא רווחים, חייב להתחיל באות, וכו.
הערך יכול להיות מכל טיפוס
שהכרנו עד כה. זה יכול להיות מספר, מחרוזת, או מערך.
זה יכול גם להיות משתנה בוליאני, למשל - isCool: true, כמובן.
למעשה, הערך יכול להיות אפילו להיות אובייקט אחר.
למשל, BirthCity (עיר לידה) ו-BirthState (מדינת לידה). אלו הם בעיקרון חלקי מידע על אותו הדבר -
על מקום ספציפי. לכן, אני חושבת שזה
יהיה הגיוני יותר אם נשמור אותם יחד כאובייקט. אני אוסיף עוד מפתח, מקום לידה
ואז עבור הערך אני אשים שוב סוגריים מסולסים.
בפנים יהיה את המפתח לעיר -
"Mountain View", ואז המדינה -
"California". נהדר! עכשיו אתם יכולים לראות, שאתם יכולים
לשמור מידע מאוד עשיר בתוך אובייקט.
בסדר. עכשיו שיש לנו אובייקט נחמד שמתאר את כל המידע הזה על ווינסטון
בואו ננסה למחוק את המשתנים הבודדים הישנים
שלא היו קשורים אחד לשני.
אופס! יש לנו שגיאה. זה מכיוון
שפקודות ה-text מתייחסות למשתנים הישנים. אנחנו צריכים לעדכן
אותן כדי להשתשמש במידע מהאובייקט, במקום.
בואו נתחיל בלהפוך את שלושת הפקודות האחרונות להערה, כדי שנוכל
לעשות את זה אחד-אחד. אוקיי. אז כתוב כאן - winstonAge
כרגע. מה שאנחנו צריכים לעשות זה להחליף את זה, אז נכתוב
'winston', כי זה שם המשתנה. שימו לב שאם
נשאיר את זה ככה, זה מדפיס: 'object object'. זה ממש מכוער.
זה Javascript אומר לנו שאנחנו מנסים להפוך
אובייקט שלם לתוך ערך מחרוזת. במקום זה, אנחנו
רוצים לגשת רק לגיל בתוך האובייקט. מה שאנחנו עושים
זה מוסיפים נקודה (.), ואז רושמים את המפתח של המאפיין, שהוא: age.
טה-דה! יש לנו את הגיל. אנו קוראים לזה "dot notation" (סימון נקודה)
שזה אומר שאנחנו רושמים את שם המשתנה של האובייקט, ואז נקודה
ואז את מפתח המאפיין. אוקיי
אז עכשיו אנחנו הולכים לעשות עוד. נוריד את סימון ההערה כאן, ואז במקום winstonEyes
נרשום winston נקודה eyes, ואז
בשביל השורה הזאת - winston נקודה likes
ואז winston נקודה likes במקום ה-1, ואז
בשביל השורה האחרונה הזו, זה קצת יותר מורכב כי
זה אובייקט בתוך אובייקט. אז נרשום
winston ואז נקודה, birthplace
אבל אם נשאיר את זה כך, זה עדיין אובייקט שלם, אז נרשום עוד נקודה
ואז city. ובדומה נרשום אחרי זה -
winston.birthplace.state
טה-דה! אז זה ממש מגניב כי אתם יכולים פשוט לשלוף מידע ישר מתוך אובייקטים
שהם בתוך אובייקט אחר.
מעולה. כמו שאתם רואים
אובייקטים הם דרך מצוינת לשמור אוסף חלקי מידע קשורים
על אובייקט מסויים, ואז לגשת אל המידע הזה אחר כך.
כשתמשיכו עם הלמידה, תגלו עוד על כמה אובייקטים הם אדירים!