Ominaisuusgetterit OOP:ssa JavaScriptissä
Oletetaan, että meillä on seuraava luokka yksityisillä ominaisuuksilla:
class User {
#name;
#surn;
constructor(name, surn) {
this.#name = name;
this.#surn = surn;
}
}
Kuten näet, nämä ominaisuudet asetetaan kerran olion luomisen yhteydessä. Nyt kuitenkaan niitä ominaisuuksia ei voi lukea, sillä ne ovat yksityisiä eikä ole vastaavia menetelmiä sitä varten.
Tehdään ominaisuuksillemme erityisiä
menetelmiä, jotka mahdollistavat näiden ominaisuuksien lukemisen.
Tällaisia menetelmiä (joita kutsutaan gettereiksi) tulisi
alkaa sanalla get, jonka jälkeen tulisi
tulla luettavan ominaisuuden nimi.
Tehdään ominaisuuksiemme getterit:
class User {
#name;
#surn;
constructor(name, surn) {
this.#name = name;
this.#surn = surn;
}
getName() {
return this.#name;
}
getSurn() {
return this.#surn;
}
}
Testataan niiden toimintaa. Luodaan olio, välittäen parametrina käyttäjän tiedot:
let user = new User('john', 'smit');
Luetaan nämä tiedot hyödyntäen gettereitä:
console.log(user.getName());
console.log(user.getSurn());
Luokassa Employee tee
kolme yksityistä ominaisuutta: nimi, palkka
ja ikä.
Välitä konstruktorin parametrina näiden ominaisuuksien arvot.
Tee getterit, jotka tulostavat jokaisen ominaisuutemme arvot.