Właściwości akcesorów w OOP w JavaScript

Istnieją dwa typy właściwości obiektu.

Pierwszy typ to właściwości-dane (data properties). Wiemy już, jak z nimi pracować. Wszystkie właściwości, których używaliśmy do tej pory, były właściwościami-danymi.

Drugiego typu właściwości jeszcze nie rozważaliśmy. To właściwości-akcesory (accessor properties). W swojej istocie są to funkcje, które są używane do przypisywania i pobierania wartości, ale w zewnętrznym kodzie wyglądają jak zwykłe właściwości obiektu.

Właściwości-akcesory są tworzone za pomocą słów kluczowych get i set napisanych przy deklarowaniu metod:

javascriptclass User {
  get name() {
  
  }
  set name(name) {
  
  }
}

W wyniku takiej deklaracji nasza klasa będzie posiadała właściwość name. Przy tym przy próbie odczytu tej właściwości zostanie wywołana metoda, zadeklarowana przez get:

javascriptlet name = user.name;

Przy próbie zapisu zostanie wywołana metoda, zadeklarowana przez set:

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

Dana jest następująca klasa:

javascriptclass Employee {
  get name() {
    console.log('get');
  }
  set name(name) {
    console.log('set');
  }
}

Utwórz obiekt tej klasy i spróbuj zapisać i odczytać dane z właściwości name.