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:
class 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ä:
let name = user.name;
Kirjoitusyrityksessä kutsutaan metodia,
joka on määritelty set:llä:
user.name = 'john';
Annettu on seuraava luokka:
class 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.