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:
class User {
#name;
}
Acum să scriem date în proprietatea noastră. Acest lucru se poate face, de exemplu, în constructorul clasei:
class User {
#name;
constructor(name) {
this.#name = name;
}
}
Să facem acum o metodă care va returna valoarea proprietății noastre:
class 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:
let user = new User('john');
Încercarea de a accesa direct proprietatea noastră în afara clasei va duce la o eroare:
console.log(user.#name); // eroare
Iar apelarea metodei noastre va permite citirea acestei proprietăți:
console.log(user.show()); // va afișa 'john'
În clasa Employee faceți
trei proprietăți private: nume, salariu
și vârstă.
Transmiteți prin parametrul constructorului valorile acestor proprietăți.
Faceți o metodă care va afișa datele angajatului.