Proprietà private in OOP in JavaScript

Le proprietà dell'oggetto che possono essere lette e scritte dall'esterno sono chiamate pubbliche. Esistono anche proprietà private, che saranno accessibili solo all'interno della classe.

I nomi delle proprietà private devono iniziare con il simbolo #. Inoltre, tali proprietà devono obbligatoriamente essere dichiarate all'inizio del codice della classe. Facciamolo:

javascriptclass User {
  #name;
}

Ora inseriamo i dati nella nostra proprietà. Questo può essere fatto, ad esempio, nel costruttore della classe:

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

Creiamo ora un metodo che restituirà il valore della nostra proprietà:

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

Creiamo un oggetto della classe, passando come parametro il nome utente:

javascriptlet user = new User('john');

Il tentativo di accedere direttamente alla nostra proprietà al di fuori della classe risulterà in un errore:

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

Mentre la chiamata al nostro metodo permetterà di leggere questa proprietà:

javascriptconsole.log(user.show()); // visualizzerà 'john'
Задание 1

Nella classe Employee create tre proprietà private: nome, stipendio ed età.

Задание 2

Passate tramite il costruttore i valori di queste proprietà.

Задание 3

Create un metodo che visualizzi i dati del dipendente.