מתודות פרטיות
חלק מהיחידה תכנות מונחה עצמים במסלול ה-JavaScript של Coddy. שיעור 19 מתוך 56.
מתודות פרטיות במחלקות JavaScript מאפשרות להסתיר פרטי מימוש ולמנוע גישה חיצונית לפונקציונליות פנימית.
החל מ-ES2022, ניתן להגדיר מתודות פרטיות באמצעות הקידומת #:
class Counter {
#count = 0;
// צרו מתודה פרטית
#increment() {
this.#count++;
}
// מתודה ציבורית שמשתמשת במתודה הפרטית
addOne() {
this.#increment();
return this.#count;
}
}בואו ניצור מופע של Counter:
const myCounter = new Counter();אפשר לקרוא למתודה הציבורית:
console.log(myCounter.addOne()); // פלט: 1אבל ניסיון לגשת ישירות למתודה הפרטית יגרום לשגיאה:
myCounter.#increment(); // שגיאה: לא ניתן לגשת למתודה פרטית מחוץ למחלקהמתודות פרטיות מסייעות לשמור על אנקפסולציה באמצעות הסתרת פרטי המימוש הפנימיים מהעולם החיצון.
אתגר
נתונה לך מחלקה בשם MessageBox ששומרת הודעות. המשימה שלך היא להוסיף מתודה פרטית בשם #isValidMessage(text) שמאמתת הודעות. עליה:
- להחזיר
trueאם הטקסט אינו ריק ואורכו פחות מ־100 תווים - להחזיר
falseאחרת
נסו בעצמכם
import { MessageBox } from './messageBox.js';
// שימוש בתיבת ההודעות
const box = new MessageBox();
console.log(box.setMessage("Hello")); // "Message set!" (משתמש ב-#isValidMessage)
console.log(box.setMessage("")); // "Invalid message!" (משתמש ב-#isValidMessage)
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה תכנות מונחה עצמים
1אובייקטים ומילת המפתח this
סקירה מהירה: אובייקטיםהוספת מתודות לאובייקטיםהבנת מילת המפתח thisפונקציות בנאימילת המפתח newאתגר סיכום7הורשה ומילת המפתח extends
הורשההקשר "הוא-סוג-של"מילת המפתח extendsהמתודה super()הורשת מאפיינים ומתודותאתגר סיכום8ארגון קוד OOP
ארגון מחלקות במודוליםתרגלו בעצמכם: קומפיילר JavaScript אונליין