Přístupové vlastnosti v OOP v JavaScriptu
Existují dva typy vlastností objektu.
První typ jsou vlastnosti-datové (data properties). Již víme, jak s nimi pracovat. Všechny vlastnosti, které jsme používali až do současného okamžiku, byly vlastnostmi-datovými.
Druhý typ vlastností jsme ještě nezkoumali. Jsou to vlastnosti-akcesory (accessor properties). Ve své podstatě se jedná o funkce, které se používají pro přiřazení a získání hodnoty, ale z vnějšího kódu vypadají jako běžné vlastnosti objektu.
Přístupové vlastnosti jsou vytvořeny pomocí
klíčových slov get a set napsaných
při deklaraci metod:
class User {
get name() {
}
set name(name) {
}
}
Výsledkem takové deklarace
bude, že naše třída bude disponovat vlastností
name. Přitom při pokusu o čtení
této vlastnosti bude volána metoda,
deklarovaná pomocí get:
let name = user.name;
Při pokusu o zápis bude volána metoda,
deklarovaná pomocí set:
user.name = 'john';
Je dána následující třída:
class Employee {
get name() {
console.log('get');
}
set name(name) {
console.log('set');
}
}
Vytvořte objekt této třídy
a zkuste zapsat a přečíst
data z vlastnosti name.