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:

javascriptclass User {
  #name;
}

Zdaj zapišimo podatke v našo lastnost. To je mogoče storiti na primer v konstruktorju razreda:

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

Naredimo zdaj metodo, ki bo vračala vrednost naše lastnosti:

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

Ustvarimo objekt razreda, ki poda ime kot parameter uporabnika:

javascriptlet user = new User('john');

Poskus neposrednega dostopa do naše lastnosti zunaj razreda bo povzročil napako:

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

Klic naše metode pa bo omogočil branje te lastnosti:

javascriptconsole.log(user.show()); // izpiše 'john'
Задание 1

V razredu Employee naredite tri zasebne lastnosti: ime, plačo in starost.

Задание 2

Podajte kot parameter konstruktorja vrednosti teh lastnosti.

Задание 3

Naredite metodo, ki bo izpisala podatke o zaposlenem.