Privátní vlastnosti v OOP v JavaScriptu
Vlastnosti objektu, které lze číst a zapisovat zvenčí, se nazývají veřejné. Existují také privátní vlastnosti, které budou přístupné pouze uvnitř třídy.
Názvy privátních vlastností je třeba
začínat symbolem #.
Kromě toho je nutné takové vlastnosti
deklarovat na začátku kódu třídy.
Pojďme to udělat:
class User {
#name;
}
Nyní zapišme data do naší vlastnosti. To lze provést například v konstruktoru třídy:
class User {
#name;
constructor(name) {
this.#name = name;
}
}
Vytvořme nyní metodu, která bude vracet hodnotu naší vlastnosti:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
}
Vytvořme objekt třídy, předáním jména uživatele jako parametr:
let user = new User('john');
Pokus o přímý přístup k naší vlastnosti mimo třídu povede k chybě:
console.log(user.#name); // chyba
A volání naší metody umožní přečíst tuto vlastnost:
console.log(user.show()); // vypíše 'john'
Ve třídě Employee vytvořte
tři privátní vlastnosti: jméno, plat
a věk.
Předejte parametrem konstruktoru hodnoty těchto vlastností.
Vytvořte metodu, která vypíše data zaměstnance.