გეტერები აქსესორების OOP-ში 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 თვისებებისთვის.