Egenskabs-accessorer i OOP i JavaScript
Der er to typer af objektegenskaber.
Den første type er dataegenskaber (data properties). Vi ved allerede, hvordan man arbejder med dem. Alle egenskaber, som vi har brugt indtil nu, har været dataegenskaber.
Den anden type egenskaber har vi endnu ikke set på. Det er egenskabs-accessorer (accessor properties). I deres kerne er de funktioner, der bruges til at tildele og hente en værdi, men i den eksterne kode ser de ud som almindelige objektegenskaber.
Egenskabs-accessorer oprettes ved hjælp af
nøgleordene get og set skrevet
ved deklarationen af metoder:
class User {
get name() {
}
set name(name) {
}
}
Som et resultat af en sådan deklaration
vil vores klasse besidde egenskaben
name. Ved læseforsøg
af denne egenskab vil metoden
deklareret via get blive kaldt:
let name = user.name;
Ved skriveforsøg vil metoden
deklareret via set blive kaldt:
user.name = 'john';
Følgende klasse er givet:
class Employee {
get name() {
console.log('get');
}
set name(name) {
console.log('set');
}
}
Opret et objekt af denne klasse
og prøv at skrive og læse
data fra egenskaben name.