Vorteile von Settern und Gettern in OOP in JavaScript
In der vorherigen Lektion haben wir für jede Eigenschaft einen Getter und Setter erstellt. Es könnte die Frage aufkommen, wozu solche Kompliziertheiten nötig sind, denn denselben Effekt könnte man praktisch erreichen, wenn man die Eigenschaften öffentlich macht, anstatt privat.
Die Sache ist die, dass Getter und Setter einen Vorteil haben: vor dem Zugriff auf eine Eigenschaft können einige Überprüfungen durchgeführt werden. In unserem Fall können wir beispielsweise beim Schreiben des Vor- und Nachnamens prüfen, dass der neue Wert kein leerer String ist:
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;
}
}
Lassen Sie uns testen, wie das funktioniert. Erstellen wir zuerst ein Objekt der Klasse:
let user = new User;
Versuchen wir nun, einen korrekten Wert zu setzen:
user.setName('john');
Und nun versuchen wir, einen inkorrekten Wert zu setzen:
user.setName(''); // Fehler
Implementieren Sie in der Klasse Employee im Setter
für das Alter eine Überprüfung, dass das Alter
zwischen 0 und 120 liegen muss.
Modifizieren Sie in der Klasse Employee im Getter
für das Gehalt diesen so, dass
beim Auslesen des Gehalts an das Ende seines
Wertes ein Dollar-Zeichen angehängt wird.