Setters van denkbeeldige eienskappe in OOP in JavaScript
Behalwe getters van denkbeeldige eienskappe kan jy ook hul setters skep. In hierdie geval moet ons binne die setter die data kry, dit verdeel en die ooreenstemmende dele in die nodige publieke eienskappe skryf.
Kom ons probeer. Laat ons die
setter van die denkbeeldige eienskap full implementeer:
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;
}
}
Kom ons vereenvoudig die destuksie:
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(' ');
}
}
Kom ons skep 'n objek van die klas:
let user = new User('john', 'smit');
Laat ons data in ons denkbeeldige setter skryf:
user.full = 'eric jons';
Kom ons toets dat die eienskappe van die objek verander het:
console.log(user.name); // 'eric'
console.log(user.surn); // 'jons'
console.log(user.full); // 'eric jons'