מילות המפתח 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];
}
}עכשיו נוכל להשתמש במאפייני הגישה וההגדרה האלה כמו במאפיינים:
// צרו 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שימו לב שאנחנו לא קוראים למתודות האלה עם סוגריים. הן מתנהגות בדיוק כמו מאפיינים, אבל מריצות קוד כשניגשים אליהן או משנים אותן.
אתגר
ניתנה לך מחלקת User עם מאפיין age. המשימה שלך היא להוסיף getter ו-setter עבור age כך ש:
- Getter
<strong>get age()</strong>: מחזיר את הגיל המאוחסן - Setter
<strong>set age(newAge)</strong>: מוודא שהגיל הוא בין 0 ל-120- אם הוא תקין (0-120): שמור אותו ב-
this._age - אם הוא לא תקין: אל תשנה אותו והצג ביומן
"Invalid age!"
- אם הוא תקין (0-120): שמור אותו ב-
נסו בעצמכם
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 (ללא שינוי)
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה תכנות מונחה עצמים
1אובייקטים ומילת המפתח this
סקירה מהירה: אובייקטיםהוספת מתודות לאובייקטיםהבנת מילת המפתח thisפונקציות בנאימילת המפתח newאתגר סיכום7הורשה ומילת המפתח extends
הורשההקשר "הוא-סוג-של"מילת המפתח extendsהמתודה super()הורשת מאפיינים ומתודותאתגר סיכום8ארגון קוד OOP
ארגון מחלקות במודוליםתרגלו בעצמכם: קומפיילר JavaScript אונליין