Privaatsed omadused OOP-s JavaScriptis
Objekti omadusi, mida saab väliselt lugeda ja kirjutada, nimetatakse avalikeks. On olemas ka privaatsed omadused, mis on kättesaadavad ainult klassi sisemuses.
Privaatsete omaduste nimed tuleb
alustada sümboliga #.
Lisaks tuleb sellised omadused tingimata
deklareerida klassi koodi alguses.
Teeme seda:
class User {
#name;
}
Nüüd kirjutame andmed meie omadusse. Seda saab teha näiteks klassi konstruktoris:
class User {
#name;
constructor(name) {
this.#name = name;
}
}
Teeme nüüd meetodi, mis tagastab meie omaduse väärtuse:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
}
Loome klassi objekti, andes parameetrina kasutaja nime:
let user = new User('john');
Katse pöörduda otse meie omaduse poole väljaspool klassi põhjustab vea:
console.log(user.#name); // viga
Meie meetodi väljakutsumine võimaldab seda omadust lugeda:
console.log(user.show()); // väljastab 'john'
Klassis Employee tehke
kolm privaatset omadust: nimi, palk
ja vanus.
Andke konstruktori parameetrina nende omaduste väärtused.
Tehke meetod, mis väljastab töötaja andmed.