Thuộc tính truy cập trong OOP trong JavaScript
Có hai loại thuộc tính của đối tượng.
Loại thứ nhất là thuộc tính dữ liệu (data properties). Chúng ta đã biết cách làm việc với chúng. Tất cả các thuộc tính mà chúng ta đã sử dụng cho đến thời điểm hiện tại, đều là thuộc tính dữ liệu.
Loại thuộc tính thứ hai chúng ta chưa xem xét. Đó là thuộc tính truy cập (accessor properties). Về bản chất, chúng là các hàm, được sử dụng để gán và lấy giá trị, nhưng trong mã bên ngoài chúng trông giống như các thuộc tính thông thường của đối tượng.
Các thuộc tính truy cập được tạo bằng cách sử dụng
các từ khóa get và set được viết
khi khai báo phương thức:
class User {
get name() {
}
set name(name) {
}
}
Kết quả của khai báo như vậy
lớp của chúng ta sẽ có thuộc tính
name. Khi đó, khi cố gắng đọc
thuộc tính này, phương thức
được khai báo qua get sẽ được gọi:
let name = user.name;
Khi cố gắng ghi, phương thức
được khai báo qua set sẽ được gọi:
user.name = 'john';
Cho lớp sau:
class Employee {
get name() {
console.log('get');
}
set name(name) {
console.log('set');
}
}
Hãy tạo một đối tượng của lớp này
và thử ghi và đọc
dữ liệu từ thuộc tính name.