
new, כמו תאריך, מכיל גם מאפיינים וגם פונקציות.delete מסירה מאפיין, בין אם הוגדר מראש ובין אם נוסף בהמשך.for-in.in בודקת אם מאפיין קיים באובייקט.הטקסט המלא של הדקות הראשונות בהרצאה «שפת JavaScript - אובייקט» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו מגיעים לשימוש באובייקטים. אובייקט אנחנו כבר אמורים להכיר בשלב הזה. זה בעצם אזור בזיכרון שיש בו מספר תאים וכל תא יש לו שם. אובייקט מייצג לנו איזושהי ישות מסוימת.
לדוגמה יצרנו באחד הסרטונים הקודמים תאריך נניח נקרא לזה current דייט שווה ניו דייט. ואז ברגע שאנחנו רושמים קורן דייט ורושמים נקודה אנחנו רואים שיש לו גם פונקציות וגם משתנים רואים את זה פה ודרכו אנחנו יכולים להגיע לערכים הפנימיים שיש בתוכו ניו יוצר לנו אובייקט חדש אוקיי אחלה.
אבל לא רק ניו יוצר לנו אובייקט יש משהו שנקרא לית'רל אובג'קט לית'רל אובג'קט בואו ניתן פה לא קורן דייט אלא product זה בעצם סוגריים מסלוסלים כל פעם שאנחנו כותבים סוגריים מסלוסלים זה אובייקט ליטרלי מה שאנחנו רושמים בתוכו זה השדות של האובייקט לדוגמה למוצר יש ID בואו ניקח name אפל ובוא נניח פרייס שלוש וחצי.
אם אנחנו עכשיו מדפיסים console.log את product כ-product אז המערכת מציגה לנו את כל האובייקט as is. אנחנו יכולים להדפיס גם משהו ספציפי לדוגמה product.id בואו נדפיס id בצורה כזאת ונשכפל ל-name בצורה כזאת.
אם אנחנו מריצים אנחנו רואים שיש לנו פה הצגה גם של ה-ID וגם של ה-NAME, ניגשנו ספציפית למאפיינים של האובייקט. כאשר אנחנו באים ואומרים אני רוצה להדפיס גם את הכמות במלאי של האובייקט ואין לנו כמות במלאי, אז המערכת אומרת לנו תשמעו זה אינדיפיינד, אין לכם משתנה כזה.
אנחנו יכולים ב-JavaScript להוסיף דינמית מאפיינים לאובייקט, אפילו שהוא כבר קיים לנו, כל אובייקט. איך עושים את זה? יש שתי שיטות. product נקודה, בואו נלך ונוסיף לו stock, נניח שיש לנו 100 כאלה במלאי, ומיד אחר כך נציג, בואו האמת נציג את כל האובייקט וגם את ה-stock,
ונראה מיד אחר כך שיש לנו עכשיו באובייקט stock. מפה עד לפה לא היה לנו stock, כאן הוספנו, והנה עכשיו לאובייקט יש גם כמות במלאי, ואנחנו יכולים להגיע אליה אפשרות נוספת זה product ולהתייחס אליו כאילו שזה מערך ובתוכו לרשום במחוזת מה הvalue שאנחנו רוצים להשיג.
בוא נניח שאנחנו רוצים נעשה את זה כאן console.log להגיע לכמות ההזמנות orders שיש עבור המוצר הזה product במיקום orders כמה הזמנות יש ממנו. אין לנו הזמנות ולכן כאן אנחנו נקבל undefined.
אבל אם אנחנו נבוא ונגיד למוצר אנחנו עכשיו מכניסים שיש לנו 70 הזמנות מעכשיו יהיה לו 70 הזמנות נעשה את זה כאן ונשכפל את זה לא משנה איך אפשר גם לקרוא לאורדר במיקום בצורה כזאת.
אורדר זה אמת בואו נבדוק את זה נריץ ונסתכל מה בעצם המערכת אומרת לנו. על ההתחלה יש לנו אובייקט רק עם ID, Name ו-Price. הנה השגנו את ה-ID ואת ה-Name.
אין לנו סטוק, אין לנו אורדרס. אוקיי, כתבנו את הסטוק ואת האורדרס לאובייקט, אנחנו רואים שהוא התווסף באחת משתי השיטות, או בצורה כזאת או בצורה כזאת, והנה יש לנו סטוק ואורדרס.
אז יש לנו פה אפשרות להוסיף מידע לאובייקט. יש לנו אפשרות גם למחוק מידע. לדוגמה product. סליחה, אני עושה delete ואז product. ובוא נניח אני מוחק את ה-price.
זה לא משנה אם הוספתי בצורה דינמית את המידע או שמראש הגדרתי אותו. ואם אנחנו ננסה להציג את האובייקט פעם נוספת, אנחנו נראה שבתצוגה האחרונה אין לו price, מחקנו את המשתנה מהאובייקט.
זה ממש דינמי, אפשר להוסיף לאובייקט פריטים ואפשר למחוק מהאובייקט פריטים. אנחנו יכולים גם להסתיר משהו מהאובייקט, כלומר להגדיר איזה משהו בתוך האובייקט שהוא בחלק מהמקרים יוסתר לנו.
איך עושים את זה? בואו נלך לפרודקט