Menu
CoddyTech

Metody prywatne

Część sekcji Programowanie obiektowe ścieżki JavaScript w Coddy. Lekcja 19 z 56.

Prywatne metody w klasach JavaScript pozwalają ukryć szczegóły implementacji i uniemożliwiają dostęp z zewnątrz do wewnętrznych funkcji.

Od ES2022 metody prywatne można definiować za pomocą prefiksu #:

class Counter {
  #count = 0;
  
  // Utwórz metodę prywatną
  #increment() {
    this.#count++;
  }
  
  // Metoda publiczna, która korzysta z metody prywatnej
  addOne() {
    this.#increment();
    return this.#count;
  }
}

Utwórzmy instancję licznika:

const myCounter = new Counter();

Możemy wywołać metodę publiczną:

console.log(myCounter.addOne()); // Wynik: 1

Jednak próba bezpośredniego dostępu do metody prywatnej spowoduje błąd:

myCounter.#increment(); // Błąd: Metoda prywatna nie jest dostępna poza klasą

Metody prywatne pomagają zachować enkapsulację, ukrywając szczegóły wewnętrznej implementacji przed światem zewnętrznym.

challenge icon

Wyzwanie

Otrzymujesz klasę MessageBox, która przechowuje wiadomości. Twoim zadaniem jest dodanie prywatnej metody o nazwie #isValidMessage(text), która sprawdza poprawność wiadomości. Powinna ona:

  • Zwracać true, jeśli tekst nie jest pusty i ma mniej niż 100 znaków
  • W przeciwnym razie zwracać false

Spróbuj swoich sił

import { MessageBox } from './messageBox.js';

// Używanie okna komunikatu
const box = new MessageBox();

console.log(box.setMessage("Hello"));    // "Message set!" (używa #isValidMessage)
console.log(box.setMessage(""));         // "Invalid message!" (używa #isValidMessage)
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator JavaScript online