Các getters và setters đặc tính
Tất cả các đặc tính object chúng ta đã thảo luận trước đây trong học phần này là các đặc tính dữ liệu với một
tên và một giá trị thông thường. Javascript cũng hỗ trợ các đặc tính truy cập, cái không có một giá trị đơn nhưng
thay vào có một hay hai các phương thức truy cập: một getter và/hay một setter.
Khi một chương trình truy vấn giá trị của một đặc tính truy cập, Javascript khởi động phương thức getter (truyền
không đối số). Giá trị trả về của phương thức này trở thành giá trị của biểu thức truy cập đặc tính. Khi một
chương trình thiết lập giá trị của một đặc tính truy cập, Javascript khởi động phương thức setter, truyền giá trị
của sườn tay phải của phép gán. Phương thức này chịu trách nhiệm cho thiết lập theo một vài nghĩa, giá trị đặc
tính. Giá trị trả về của phương thức setter bị bỏ qua.
Nếu một đặc tính có cả một phương thức getter và setter, nó là một đặc tính đọc/viết. Nếu nó chỉ có một phương
thức getter , nó là một đặc tính chỉ đọc. Và nếu nó chỉ có một phương thức setter, nó là một đặc tính chỉ viết
(thứ gì đó cái là không thể với các đặc tính dữ liệu), và các thử đọc nó luôn đánh giá thành undefined.
Các đặc tính truy cập có thể được định nghĩa với một mở rộng đối với cú pháp object literal (không giống
các mở rộng ES6 khác chúng ta vừa thấy ở đây, các getters và setters được giới thiệu trong ES5):
let o = {
// An ordinary data property
dataProp: value,
// An accessor property defined as a pair of functions.
get accessorProp() { return this.dataProp; },
set accessorProp(value) { this.dataProp = value; }};
