Menu
Coddy logo textTech

מתודות פרטיות

חלק מהיחידה תכנות מונחה עצמים במסלול ה-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(); // שגיאה: לא ניתן לגשת למתודה פרטית מחוץ למחלקה

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

challenge icon

אתגר

נתונה לך מחלקה בשם 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)
quiz iconבחנו את עצמכם

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

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

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