Private egenskaber i OOP i JavaScript
Objektegenskaber, som kan læses og skrives udefra, kaldes offentlige. Der findes også private egenskaber, som kun vil være tilgængelige internt i klassen.
Navnene på private egenskaber skal
starte med symbolet #.
Desuden skal sådanne egenskaber nødvendigvis
deklareres i starten af klassekoden.
Lad os gøre dette:
class User {
#name;
}
Lad os nu skrive data til vores egenskab. Dette kan gøres for eksempel i klassens konstruktor:
class User {
#name;
constructor(name) {
this.#name = name;
}
}
Lad os nu lave en metode, som vil returnere værdien af vores egenskab:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
}
Lad os oprette et objekt af klassen, hvor vi sender brugernavnet som parameter:
let user = new User('john');
Et forsøg på at tilgå direkte vores egenskab uden for klassen vil føre til en fejl:
console.log(user.#name); // fejl
Og et kald til vores metode vil tillade os at læse denne egenskab:
console.log(user.show()); // udskriver 'john'
I klassen Employee skal du lave
tre private egenskaber: navn, løn
og alder.
Overfør værdierne for disse egenskaber som en parameter til konstruktøren.
Lav en metode, der vil udskrive medarbejderens data.