Iedomāto īpašību seteri OOP JavaScript
Papildus iedomāto īpašību geteriem var izveidot arī to seterus. Šajā gadījumā setera iekšienē mums jāsaņem dati, jāsadala tie un jāieraksta atbilstošās daļas attiecīgajās publiskajās īpašībās.
Mēģināsim to izdarīt. Implementēsim
iedomātās īpašības full seteri:
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;
}
}
Vienkāršosim destruktūrizāciju:
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(' ');
}
}
Izveidosim klases objektu:
let user = new User('john', 'smit');
Ierakstīsim datus mūsu iedomātajā seterā:
user.full = 'eric jons';
Pārbaudīsim, vai objekta īpašības mainījās:
console.log(user.name); // 'eric'
console.log(user.surn); // 'jons'
console.log(user.full); // 'eric jons'