Prywatne właściwości w OOP w JavaScript
Właściwości obiektu, które można odczytywać i zapisywać z zewnątrz, nazywane są publicznymi. Istnieją również prywatne właściwości, które będą dostępne tylko wewnątrz klasy.
Nazwy prywatnych właściwości należy
rozpoczynać od znaku #.
Ponadto, takie właściwości muszą być
zadeklarowane na początku kodu klasy.
Zróbmy to:
class User {
#name;
}
Teraz zapiszmy dane w naszej właściwości. Można to zrobić, na przykład, w konstruktorze klasy:
class User {
#name;
constructor(name) {
this.#name = name;
}
}
Stwórzmy teraz metodę, która będzie zwracać wartość naszej właściwości:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
}
Stwórzmy obiekt klasy, przekazując parametrem imię użytkownika:
let user = new User('john');
Próba bezpośredniego odwołania się do naszej właściwości poza klasą skutkuje błędem:
console.log(user.#name); // błąd
A wywołanie naszej metody pozwoli odczytać tę właściwość:
console.log(user.show()); // wypisze 'john'
W klasie Employee stwórz
trzy prywatne właściwości: imię, wynagrodzenie
i wiek.
Przekaż parametrem konstruktora wartości tych właściwości.
Stwórz metodę, która wypisze dane pracownika.