שלום אורח התחבר

היום למדתי: משתנים פרטיים ב JavaScript

נושאים:יומי

אז אנחנו כבר יודעים ש JavaScript רצה מהר ואחד הפיצ'רים שכבר נכנסו לדפדפנים (ול Node.JS) נקרא משתני מחלקה פרטיים. בואו נראה בגדול מהם ואיך משתמשים בהם.

1הגדרה ושימוש במשתנים פרטיים

משתני מחלקה פרטיים הם משתני מחלקה שאפשר לגשת אליהם או לשנות אותם רק מקוד שכתוב בתוך המחלקה עצמה. הדרך להגדיר אותם ב JavaScript היא ליצור משתני מחלקה ששמם מתחיל בסימן הסולמית. אז נכון שסולמית לא נראה הכי טוב ותכל'ס כולם רצו שטרודל כדי שיראה כמו רובי, אבל בגלל ששטרודלים היו תפוסים בשביל Decorators היה צריך להיות יצירתיים.

נשים לב שבניגוד למשתני מחלקה רגילים, כשמדובר במשתנים פרטיים אנחנו חייבים להצהיר עליהם בעת יצירת המחלקה שזה אומר לציין בתוך קוד המחלקה מחוץ לכל הפונקציות את שמות המשתנים הפרטיים שלנו.

הקוד הבא מגדיר מחלקה בשם Counter עם משתנה פרטי בשם #val:

class Counter {
  #val
  constructor() {
    this.inc = this.inc.bind(this);
    this.#val = 0;
  }

  inc() {
    return ++this.#val;
  }
}

קוד חיצוני שייצור לעצמו אוביקט Counter וינסה לשנות את הערך של val ייכשל ויקבל הודעת שגיאה:

const c = new Counter();

// Error - #val is private
c.#val = 999;

2קודפן

אם בא לכם לשחק עם זה יצרתי כאן קודפן שאפשר להריץ בדפדפנים. אצלי בכרום זה עובד מעולה אבל פיירפוקס עדיין לא תומך. לחצו על הכפתור ואם הכל עובד ערך המונה יעלה ב-1 עם כל לחיצה:

3שאלות נפוצות וקריאת המשך

רשימה של שאלות נפוצות ומידע נוסף על הפיצ'ר אפשר למצוא בקישור: https://github.com/tc39/proposal-class-fields/blob/master/PRIVATESYNTAXFAQ.md

מעדיפים לקרוא מהטלגרם? בקרו אותנו ב:@tocodeil

או הזינו את כתובת המייל וקבלו את הפוסט היומי בכל בוקר אליכם לתיבה:


נהניתם מהפוסט? מוזמנים לשתף ולהגיב