Các getters và setters đặc tính (tiếp tục)
Chú ý việc sử dụng từ khóa this trong các getters và setters trong ví dụ này. Javascript khởi động các hàm này
như các phương thức của object trên đó chúng được định nghĩa, cái có nghĩa rằng bên trong body của hàm, this
tham chiếu point object p. Nên phương thức getter cho đặc tính r có thể tham chiếu tới các đặc tính x và y như
this.x và this.y. Các phương thức và từ khóa this được bao quát chi tiết hơn trong các học phần sau.
Các đặc tính truy cập được kế thừa, chính như các đặc tính dữ liệu được, nên bạn có thể sử dụng object p định
nghĩa ở trên như một prototype cho các points khác. Bạn có thể cung cấp các objects mới các đặc tính x và y
của bản thân chúng, và chúng sẽ kế thừa các đặc tính r và theta
let q = Object.create(p); // A new object that inherits getters and setters
q.x = 3; q.y = 4; // Create q’s own data properties
q.r // => 5: the inherited accessor properties work
q.theta // => Math.atan2(4, 3)
Code ở trên sử dụng các đặc tính truy cập để định nghĩa một API cái cung cấp 2 trình bày (các tọa độ
Cartesian và polar) của một tập đơn dữ liệu. Các lí do khác để sử dụng các đặc tính truy cập bao gồm kiểm tra
độ sạch của đặc tính viết và trả về các giá trị khác nhau trên mỗi đọc đặc tính:
Cuối cùng, sau đây là một ví dụ nhiều hơn cái sử dụng một phương thức getter để thực thi một đặc tính với
hành vi ma thuật:
// This object has accessor properties that return random numbers.
// The expression “random.octet”, for example, yields a random number
// between 0 and 255 each time it is evaluated.
const random = {get octet() { return Math.floor(Math.random()*256); },
get uint16() { return Math.floor(Math.random()*65536); },
get int16() { return Math.floor(Math.random()*65536)-32768; }};

