Menu
CoddyTech

מילות המפתח get ו-set

חלק מהיחידה תכנות מונחה עצמים במסלול ה-JavaScript של Coddy. שיעור 43 מתוך 56.

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

בואו ניצור מחלקה פשוטה בשם Person:

class Person {
  constructor(firstName, lastName) {
    this._firstName = firstName;
    this._lastName = lastName;
  }
  
  // גטר עבור fullName
  get fullName() {
    return `${this._firstName} ${this._lastName}`;
  }
  
  // סטר עבור fullName
  set fullName(value) {
    const parts = value.split(' ');
    this._firstName = parts[0];
    this._lastName = parts[1];
  }
}

הקו התחתון ב-_firstName וב-_lastName הוא מוסכמה למתן שמות: הוא מציין למפתחים אחרים שהמאפיינים האלה פנימיים, ושיש לקרוא ולשנות אותם באמצעות ה-getter וה-setter, ולא ישירות. JavaScript לא אוכפת זאת.

עכשיו אפשר להשתמש ב-getter וב-setter האלה כמו במאפיינים:

// צרו Person חדש
const person = new Person('John', 'Doe');

// השתמשו ב-getter
console.log(person.fullName); // פלט: John Doe

// השתמשו ב-setter
person.fullName = 'Jane Smith';

// ה-setter עדכן את המאפיינים הפנימיים
console.log(person.fullName); // פלט: Jane Smith

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

challenge icon

אתגר

ניתנה לך המחלקה User עם המאפיין age. המשימה שלך היא להוסיף getter ו-setter עבור age כך ש:

  1. Getter <strong>get age()</strong>: מחזיר את הגיל המאוחסן
  2. Setter <strong>set age(newAge)</strong>: מוודא שהגיל הוא בין 0 ל-120
    • אם הוא תקין (0-120): מאחסן אותו ב-this._age
    • אם הוא לא תקין: לא משנה אותו ומדפיס "Invalid age!"

נסו בעצמכם

import { User } from './user.js';

// קוד בדיקה - אין לשנות
const user = new User("Alice", 25);
console.log(user.age);      // אמור להדפיס 25

user.age = 30;
console.log(user.age);      // אמור להדפיס 30

user.age = 150;             // אמור להציג "Invalid age!"
console.log(user.age);      // אמור עדיין להדפיס 30 (ללא שינוי)

quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה תכנות מונחה עצמים

תרגלו בעצמכם: קומפיילר JavaScript אונליין