Zasebne lastnosti v OOP v JavaScriptu
Lastnosti objekta, ki jih je mogoče brati in zapisovati od zunaj, imenujemo javne. Obstajajo tudi zasebne lastnosti, ki bodo dostopne samo znotraj razreda.
Imena zasebnih lastnosti je treba
začeti s simbolom #.
Poleg tega je treba takšne lastnosti obvezno
deklarirati na začetku kode razreda.
Naredimo to:
class User {
#name;
}
Zdaj zapišimo podatke v našo lastnost. To je mogoče storiti na primer v konstruktorju razreda:
class User {
#name;
constructor(name) {
this.#name = name;
}
}
Naredimo zdaj metodo, ki bo vračala vrednost naše lastnosti:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
}
Ustvarimo objekt razreda, ki poda ime kot parameter uporabnika:
let user = new User('john');
Poskus neposrednega dostopa do naše lastnosti zunaj razreda bo povzročil napako:
console.log(user.#name); // napaka
Klic naše metode pa bo omogočil branje te lastnosti:
console.log(user.show()); // izpiše 'john'
V razredu Employee naredite
tri zasebne lastnosti: ime, plačo
in starost.
Podajte kot parameter konstruktorja vrednosti teh lastnosti.
Naredite metodo, ki bo izpisala podatke o zaposlenem.