Voordele van setters en getters in OOP in JavaScript
In die vorige les het ons vir elke eienskap 'n getter en setter gemaak. Die vraag kan ontstaan: hoekom is sulke kompleksiteite nodig, aangesien feitlik dieselfde effek bereik kan word deur die eienskappe publiek te maak, nie privaat nie.
Die saak is dat getters en setters 'n voordeel het: voor toegang tot die eienskap kan sekere kontroles uitgevoer word. Byvoorbeeld, in ons geval kan ons by die skryf van die naam en van die nuwe waarde verifieer dat dit nie 'n leë string is nie:
class User {
#name;
#surn;
setName(name) {
if (name.length > 0) {
this.#name = name;
} else {
throw new Error('name is incorrect');
}
}
setSurn(surn) {
if (surn.length > 0) {
this.#surn = surn;
} else {
throw new Error('surn is incorrect');
}
}
getName() {
return this.#name;
}
getSurn() {
return this.#surn;
}
}
Kom ons toets hoe dit werk. Laat ons eers 'n objek van die klas skep:
let user = new User;
Laat ons nou probeer om 'n korrekte waarde te skryf:
user.setName('john');
En laat ons nou probeer om 'n onkorrekte een te skryf:
user.setName(''); // fout
Maak in die klas Employee in die setter
van ouderdom 'n kontrole dat die ouderdom
van 0 tot 120 moet wees.
Maak in die klas Employee in die getter
van salaris so dat by die lees van die salaris
'n dollarteken aan die einde van sy waarde gevoeg word.