Privata egenskaper i OOP i JavaScript
Objektets egenskaper som kan läsas och skrivas utifrån kallas publika. Det finns också privata egenskaper, som endast kommer att vara tillgängliga inuti klassen.
Namn på privata egenskaper ska
börja med symbolen #.
Dessutom måste sådana egenskaper obligatoriskt
deklareras i början av klasskoden.
Låt oss göra detta:
class User {
#name;
}
Nu skriver vi data till vår egenskap. Detta kan göras till exempel i klassens konstruktor:
class User {
#name;
constructor(name) {
this.#name = name;
}
}
Låt oss nu skapa en metod som kommer att returnera värdet på vår egenskap:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
}
Låt oss skapa ett objekt av klassen, och skicka med användarens namn som parameter:
let user = new User('john');
Ett försök att direkt komma åt vår egenskap utanför klassen kommer att leda till ett fel:
console.log(user.#name); // error
Och anropet av vår metod kommer att möjliggöra att läsa denna egenskap:
console.log(user.show()); // skriver ut 'john'
I klassen Employee, skapa
tre privata egenskaper: namn, lön
och ålder.
Skicka värdena för dessa egenskaper via konstruktorn som parameter.
Skapa en metod som skriver ut anställdas data.