Yksityiset ominaisuudet OOP:ssa JavaScriptissä
Oliominaisuudet, joita voidaan lukea ja kirjoittaa ulkopuolelta, kutsutaan julkisiksi. On olemassa myös yksityisiä ominaisuuksia, jotka ovat saatavilla vain luokan sisällä.
Yksityisten ominaisuuksien nimet tulee
alkaa merkillä #.
Lisäksi tällaiset ominaisuudet on pakko
esitellä luokan koodin alussa.
Tehdään se:
class User {
#name;
}
Kirjoitetaan nyt dataa ominaisuuteemme. Se voidaan tehdä esimerkiksi luokan konstruktorissa:
class User {
#name;
constructor(name) {
this.#name = name;
}
}
Tehdään nyt metodi, joka palauttaa ominaisuutemme arvon:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
}
Luodaan luokan olio, lähettämällä parametrina käyttäjän nimi:
let user = new User('john');
Yritys viitata suoraan ominaisuuteemme luokan ulkopuolella johtaa virheeseen:
console.log(user.#name); // virhe
Ja metodimme kutsuminen sallii ominaisuuden lukemisen:
console.log(user.show()); // tulostaa 'john'
Luokassa Employee tee
kolme yksityistä ominaisuutta: nimi, palkka
ja ikä.
Lähetä konstruktorin parametrina näiden ominaisuuksien arvot.
Tee metodi, joka tulostaa työntekijän tiedot.