Tạo các objects Javascript (phần 3)

Prototypes

Trước khi chúng ta có thể bao quát kĩ thuật tạo object thứ ba, chúng ta phải dừng lại một chút để giải thích về
prototypes. Hầu hết mọi Javascript object có một Javascript object thứ hai liên quan đến nó. Object thứ hai này
được biết đến như là một prototype, và object đầu tiên thừa kế các đặc tính từ prototype.
Tất cả các object được tạo bởi các object literals có cùng object prototype, và chúng ta có thể tham chiếu tới
object prototype này trong Javascript code như Object.prototype. Các objects được tạo sử dụng từ khóa new và một
khởi động construcor sử dụng giá trị của đặc tính prototype của hàm constructor như prototype của chúng. Nên object
được tạo bởi new Object() thừa kế từ Object.prototype, chính như object được tạo bởi {} làm. Tương tự, object được
tạo bởi new Array() sử dụng Array.prototype như prototype của nó, và object được tạo bởi new Date() sử dụng
Date.prototype như prototype của nó. Cái này có thể là rắm rối khi đầu tiên học Javascript. Nhơ là: hầu hết tất
cả các objects có một prototype, nhưng chỉ một lượng tương đối nhỏ các objects có một đặc tính prototype. Nó là
các objects này với các đặc tính prototype cái định nghĩa các prototypes cho tất cả các objects khác.
Object.prototype là một trong những các objects hiếm cái không có prototype: nó không thừa kế bất cứ đặc tính nào.
Các objects prototype khác là các objects thông thường cái có một prototype. Hầu hết các constructors tích hợp
(và hầu hết constructors người dùng định nghĩa) có một prototype cái thừa kế từ Object.prototype. Ví dụ,
Date.prototype thừa kế các đặc tính từ cả Date.prototype và Object.prototype. Chuỗi liên kết này của các objects
prototype được biết đến như là một prototype chain.
Một giải thích về thừa kế đặc tính làm việc như thế nào là ở trong các học phần sau giải thích sự kết nối giữa các
prototypes và constructors chi tiết hơn: nó thể hiện làm cách nào định nghĩa các classes mới của các objects bằng
cách viết một hàm constructor và thiết lập đặc tính prototype của nó thành prototype object sẽ được sử dụng bởi
các thực thể khởi tạo được tạo với constructor đó. Và chúng ta sẽ học làm cách nào truy vấn (và thậm chí thay
đổi) prototype của một object trong các học phần sau.

Chia sẻ