Private egenskaper i OOP i JavaScript
Objektegenskaper som kan leses og skrives utenfra, kalles offentlige. Det finnes også private egenskaper, som kun vil være tilgjengelige inni klassen.
Navn på private egenskaper må
starte med tegnet #.
I tillegg må slike egenskaper nødvendigvis
deklareres i starten av klassekoden.
La oss gjøre dette:
class User {
#name;
}
La oss nå skrive data til vår egenskap. Dette kan gjøres for eksempel i konstruktøren til klassen:
class User {
#name;
constructor(name) {
this.#name = name;
}
}
La oss lage en metode som vil returnere verdien av vår egenskap:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
}
La oss opprette et objekt av klassen, og sende navnet som parameter til brukeren:
let user = new User('john');
Et forsøk på å direkte få tilgang til vår egenskap utenfor klassen vil føre til en feil:
console.log(user.#name); // feil
Og et kall til vår metode vil tillate oss å lese denne egenskapen:
console.log(user.show()); // skriver ut 'john'
I klassen Employee, lag
tre private egenskaper: navn, lønn
og alder.
Send verdiene for disse egenskapene som en parameter til konstruktøren.
Lag en metode som vil skrive ut dataene til arbeidstakeren.