Menu
Coddy logo textTech

Metody prywatne

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

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

Od ES2022 prywatne metody 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

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

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

Metody prywatne pomagają zachować hermetyzację, 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 metody prywatnej 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';

// Korzystanie z 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