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:

javascriptclass User {
  #name;
}

Sada ćemo upisati podatke u naše svojstvo. To se može uraditi, na primer, u konstruktoru klase:

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

Hajde sada da napravimo metod koji će vraćati vrednost našeg svojstva:

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

Hajde da napravimo objekat klase, prosledimo ime korisnika kao parametar:

javascriptlet user = new User('john');

Pokušaj da se direktno obratite našem svojstvu izvan klase će izazvati grešku:

javascriptconsole.log(user.#name); // greška

A poziv našeg metoda će omogućiti čitanje ovog svojstva:

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

U klasi Employee napravite tri privatna svojstva: ime, platu i godine.

Задание 2

Prosledite kao parametar konstruktoru vrednosti ovih svojstava.

Задание 3

Napravite metod koji će ispisati podatke o radniku.