Setters de propiedades virtuales en POO en JavaScript
Además de los getters de propiedades virtuales también se pueden crear sus setters. En este caso, dentro del setter debemos obtener los datos, dividirlos y escribir las partes correspondientes en las propiedades públicas necesarias.
Intentémoslo. Implementemos
un setter para la propiedad virtual 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;
}
}
Simplifiquemos la desestructuración:
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(' ');
}
}
Creemos un objeto de la clase:
let user = new User('john', 'smit');
Escribamos datos en nuestro setter virtual:
user.full = 'eric jons';
Comprobemos que las propiedades del objeto han cambiado:
console.log(user.name); // 'eric'
console.log(user.surn); // 'jons'
console.log(user.full); // 'eric jons'