Privatna svojstva u OOP-u u JavaScript-u
Svojstva objekta koja se mogu čitati i upisivati izvana nazivaju se javnim. Postoje i privatna svojstva, koja će biti dostupna samo unutar klase.
Imena privatnih svojstava treba
započeti simbolom #.
Osim toga, takva svojstva se moraju
deklarisati na početku koda klase.
Hajde da to uradimo:
class User {
#name;
}
Sada ćemo upisati podatke u naše svojstvo. To se može uraditi, na primer, u konstruktoru klase:
class User {
#name;
constructor(name) {
this.#name = name;
}
}
Hajde sada da napravimo metod koji će vraćati vrednost našeg svojstva:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
}
Hajde da napravimo objekat klase, prosledimo ime korisnika kao parametar:
let user = new User('john');
Pokušaj da se direktno obratite našem svojstvu izvan klase će izazvati grešku:
console.log(user.#name); // greška
A poziv našeg metoda će omogućiti čitanje ovog svojstva:
console.log(user.show()); // ispisaće 'john'
U klasi Employee napravite
tri privatna svojstva: ime, platu
i godine.
Prosledite kao parametar konstruktoru vrednosti ovih svojstava.
Napravite metod koji će ispisati podatke o radniku.