Właściwości akcesorów w OOP w JavaScript
Istnieją dwa typy właściwości obiektu.
Pierwszy typ to właściwości-dane (data properties). Wiemy już, jak z nimi pracować. Wszystkie właściwości, których używaliśmy do tej pory, były właściwościami-danymi.
Drugiego typu właściwości jeszcze nie rozważaliśmy. To właściwości-akcesory (accessor properties). W swojej istocie są to funkcje, które są używane do przypisywania i pobierania wartości, ale w zewnętrznym kodzie wyglądają jak zwykłe właściwości obiektu.
Właściwości-akcesory są tworzone za pomocą
słów kluczowych get i set napisanych
przy deklarowaniu metod:
class User {
get name() {
}
set name(name) {
}
}
W wyniku takiej deklaracji
nasza klasa będzie posiadała właściwość
name. Przy tym przy próbie odczytu
tej właściwości zostanie wywołana metoda,
zadeklarowana przez get:
let name = user.name;
Przy próbie zapisu zostanie wywołana metoda,
zadeklarowana przez set:
user.name = 'john';
Dana jest następująca klasa:
class Employee {
get name() {
console.log('get');
}
set name(name) {
console.log('set');
}
}
Utwórz obiekt tej klasy
i spróbuj zapisać i odczytać
dane z właściwości name.