Getters pentru accesorii în OOP în JavaScript

Să analizăm mai în detaliu aplicarea getters pentru proprietățile-accesor. Să presupunem că avem următoarea clasă cu o proprietate privată:

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

Să creăm în această clasă o proprietate publică name, care poate fi citită, dar nu poate fi scrisă:

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

Să verificăm funcționalitatea. Să creăm un obiect al clasei noastre, transmitându-i ca parametru valoarea numelui:

javascriptlet user = new User('john');

Și acum să citim numele prin proprietatea publică:

javascriptlet name = user.name;
console.log(name);

În schimb, încercarea de a scrie numele va duce la o eroare, așa cum ne-am dorit:

javascriptuser.name = 'eric';
Задание 1

Implementați getters pentru accesorii pentru proprietățile clasei Employee.