Savybės-accessoriai OOP JavaScripte
Yra du tipai objekto savybių.
Pirmasis tipas yra savybės-duomenys (data properties). Mes jau žinome, kaip su jomis dirbti. Visos savybės, kurias naudojome iki šiol, buvo savybėmis-duomenimis.
Antrąjį tipą savybių mes dar nesvarstėme. Tai yra savybės-accessoriai (accessor properties). Iš esmės tai yra funkcijos, kurios naudojamos reikšmei priskirti ir gauti, bet išoriniame kode jos atrodo kaip įprastos objekto savybės.
Savybės-accessoriai sukuriami naudojant
raktažodžius get ir set parašytus
metodų deklaracijos metu:
class User {
get name() {
}
set name(name) {
}
}
Dėl tokios deklaracijos
mūsų klasė turės savybę
name. Tuo pačiu, bandant skaityti
šią savybę, bus iškviestas metodas,
deklaruotas naudojant get:
let name = user.name;
Bandant įrašyti, bus iškviestas metodas,
deklaruotas naudojant set:
user.name = 'john';
Duota ši klasė:
class Employee {
get name() {
console.log('get');
}
set name(name) {
console.log('set');
}
}
Sukurkite šios klasės objektą
ir pamėginkite įrašyti ir perskaityti
duomenis iš savybės name.