Prywatne właściwości w OOP w JavaScript

Właściwości obiektu, które można odczytywać i zapisywać z zewnątrz, nazywane są publicznymi. Istnieją również prywatne właściwości, które będą dostępne tylko wewnątrz klasy.

Nazwy prywatnych właściwości należy rozpoczynać od znaku #. Ponadto, takie właściwości muszą być zadeklarowane na początku kodu klasy. Zróbmy to:

javascriptclass User {
  #name;
}

Teraz zapiszmy dane w naszej właściwości. Można to zrobić, na przykład, w konstruktorze klasy:

javascriptclass User {
  #name;
  
  constructor(name) {
    this.#name = name;
  }
}

Stwórzmy teraz metodę, która będzie zwracać wartość naszej właściwości:

javascriptclass User {
  #name;
  
  constructor(name) {
    this.#name = name;
  }
  
  show() {
    return this.#name;
  }
}

Stwórzmy obiekt klasy, przekazując parametrem imię użytkownika:

javascriptlet user = new User('john');

Próba bezpośredniego odwołania się do naszej właściwości poza klasą skutkuje błędem:

javascriptconsole.log(user.#name); // błąd

A wywołanie naszej metody pozwoli odczytać tę właściwość:

javascriptconsole.log(user.show()); // wypisze 'john'
Задание 1

W klasie Employee stwórz trzy prywatne właściwości: imię, wynagrodzenie i wiek.

Задание 2

Przekaż parametrem konstruktora wartości tych właściwości.

Задание 3

Stwórz metodę, która wypisze dane pracownika.