Setter für imaginäre Eigenschaften in OOP in JavaScript
Neben Gettern für imaginäre Eigenschaften kann man auch deren Setter erstellen. In diesem Fall müssen wir innerhalb des Setters die Daten erhalten, sie aufteilen und die entsprechenden Teile in die benötigten öffentlichen Eigenschaften schreiben.
Versuchen wir es. Implementieren wir
einen Setter für die imaginäre Eigenschaft full:
class User {
constructor(name, surn) {
this.name = name;
this.surn = surn;
}
get full() {
return this.name + ' ' + this.surn;
}
set full(full) {
let [name, surn] = full.split(' ');
this.name = name;
this.surn = surn;
}
}
Vereinfachen wir die Destrukturierung:
class User {
constructor(name, surn) {
this.name = name;
this.surn = surn;
}
get full() {
return this.name + ' ' + this.surn;
}
set full(full) {
[this.name, this.surn] = full.split(' ');
}
}
Erstellen wir ein Objekt der Klasse:
let user = new User('john', 'smit');
Schreiben wir Daten in unseren imaginären Setter:
user.full = 'eric jons';
Prüfen wir, ob sich die Eigenschaften des Objekts geändert haben:
console.log(user.name); // 'eric'
console.log(user.surn); // 'jons'
console.log(user.full); // 'eric jons'