Proprietăți private în OOP în JavaScript

Proprietățile obiectului care pot fi citite și scrise din exterior se numesc publice. Există și proprietăți private, care vor fi accesibile doar în interiorul clasei.

Numele proprietăților private trebuie să înceapă cu simbolul #. În plus, astfel de proprietăți trebuie neapărat declarate la începutul codului clasei. Să facem asta:

javascriptclass User {
  #name;
}

Acum să scriem date în proprietatea noastră. Acest lucru se poate face, de exemplu, în constructorul clasei:

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

Să facem acum o metodă care va returna valoarea proprietății noastre:

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

Să creăm un obiect al clasei, transmițându-i ca parametru numele utilizatorului:

javascriptlet user = new User('john');

Încercarea de a accesa direct proprietatea noastră în afara clasei va duce la o eroare:

javascriptconsole.log(user.#name); // eroare

Iar apelarea metodei noastre va permite citirea acestei proprietăți:

javascriptconsole.log(user.show()); // va afișa 'john'
Задание 1

În clasa Employee faceți trei proprietăți private: nume, salariu și vârstă.

Задание 2

Transmiteți prin parametrul constructorului valorile acestor proprietăți.

Задание 3

Faceți o metodă care va afișa datele angajatului.