Aksessorointiominaisuudet OOP:ssa JavaScriptissä

On olemassa kahta tyyppiä olion ominaisuuksia.

Ensimmäinen tyyppi on data-ominaisuudet (data properties). Olemme jo oppineet työskentelemään niiden kanssa. Kaikki ominaisuudet, jotka olemme käyttäneet tähän mennessä, ovat olleet data-ominaisuuksia.

Toista ominaisuustyyppiä emme ole vielä tarkastelleet. Nämä ovat aksessorointiominaisuudet (accessor properties). Periaatteessa ne ovat funktioita, joita käytetään arvon asettamiseen ja hakemiseen, mutta ulkoisessa koodissa ne näyttävät tavallisilta olion ominaisuuksilta.

Aksessorointiominaisuudet luodaan käyttämällä avainsanoja get ja set, jotka on kirjoitettu metodien määrittelyyn:

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

Tällaisen määrittelyn tuloksena luokallamme on ominaisuus name. Tällöin ominaisuuden lukuyrityksessä kutsutaan metodia, joka on määritelty get:llä:

javascriptlet name = user.name;

Kirjoitusyrityksessä kutsutaan metodia, joka on määritelty set:llä:

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

Annettu on seuraava luokka:

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

Luo objekti tästä luokasta ja yritä kirjoittaa ja lukea dataa ominaisuudesta name.