Геттери на аксесорите в ООП в JavaScript

Нека разгледаме по-подробно приложението на геттери на свойства-аксесори. Нека имаме следния клас с частно свойство:

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

Нека направим в този клас публично свойство name, което може да бъде прочетено, но не може да бъде записано:

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

Нека проверим работата. Създаваме обект от нашия клас, като му подаваме като параметър стойност за името:

javascriptlet user = new User('john');

А сега прочитаме името чрез публичното свойство:

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

А опит за записване на името ще доведе до грешка, както и целяхме:

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

Реализирайте геттери на аксесорите за свойствата на класа Employee.