מתודות פרטיות
חלק מהיחידה תכנות מונחה עצמים במסלול ה-JavaScript של Coddy. שיעור 19 מתוך 56.
מתודות פרטיות במחלקות JavaScript מאפשרות לך להסתיר פרטי מימוש ולמנוע גישה חיצונית לפונקציונליות פנימית.
החל מ-ES2022, ניתן להגדיר מתודות פרטיות באמצעות הקידומת #:
class Counter {
#count = 0;
// צרו מתודה פרטית
#increment() {
this.#count++;
}
// מתודה ציבורית שמשתמשת במתודה הפרטית
addOne() {
this.#increment();
return this.#count;
}
}בואו ניצור מופע של מונה:
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 אונליין