Bộ thiết lập (setter) cho thuộc tính ảo trong OOP JavaScript
Ngoài bộ truy cập (getter) cho thuộc tính ảo, chúng ta cũng có thể tạo bộ setter cho chúng. Trong trường hợp này, bên trong setter chúng ta cần nhận dữ liệu, tách chúng ra và ghi các phần tương ứng vào các thuộc tính công khai cần thiết.
Hãy thử làm. Chúng ta sẽ triển khai
bộ setter cho thuộc tính ảo 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;
}
}
Đơn giản hóa việc hủy cấu trúc:
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(' ');
}
}
Tạo một đối tượng từ lớp:
let user = new User('john', 'smit');
Ghi dữ liệu vào bộ setter ảo của chúng ta:
user.full = 'eric jons';
Kiểm tra xem các thuộc tính của đối tượng đã thay đổi chưa:
console.log(user.name); // 'eric'
console.log(user.surn); // 'jons'
console.log(user.full); // 'eric jons'