Accessor-getterit OOP:ssa JavaScriptissä

Tarkastellaanpa tarkemmin accessor-omaisuusgetterien käyttöä. Oletetaan, että meillä on seuraava luokka yksityisellä ominaisuudella:

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

Tehdään tähän luokkaan julkinen ominaisuus name, jota voidaan lukea, mutta jota ei voi asettaa:

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

Testataan toimintaa. Luodaan olio luokastamme, välittämällä sille parametrina nimen arvon:

javascriptlet user = new User('john');

Luetaan nyt nimi julkisen ominaisuuden kautta:

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

Yritys kirjoittaa nimi johtaa virheeseen, kuten pyysimme:

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

Toteuta accessor-getterit luokan Employee ominaisuuksille.