Giới thiệu
Trong bài trước về khái niệm prototype, chúng ta đã thấy prototype-base programing là dạng lập trình dựa trên các object có sẵn. Do đó, nó phải mang trong mình các object có sẵn đó, mà thuật ngữ tiếng anh sẽ là built-in object. Trong bài này tôi muốn giới thiệu cho các bạn hình ảnh mối quan hệ đó.Các Built-in Object
- Object
- Function
- Array
- Number
- Boolean
- String
- Date
- CustomUDF
…
Bằng việc cung cấp sẵn các built-in object này, Javascript giúp người có thể nhanh chóng “chế tạo” các object cho riêng mình. Công việc sáng tạo này giống như là đang đứng trên vai người khổng lồ. Và cũng bởi vì các programer có thể nhanh chóng “chế tạo” các object cho riêng mình từ những thứ có sẵn cho nên việc tìm hiểu sâu về prototype cũng sẽ lười đi. Đó cũng là lý do tôi muốn chia sẽ với các bạn về loạt bài prototype này.
Mối quan hệ
Các lưu ý về hình minh họa trên:
- Các Built-in Object đều có Prototype, thể hiện qua đường màu đỏ ngắt quãng.
- Các đường mũi tên màu đen là các link
__proto__
- Ở hình trên, tác giả chủ ý vẽ dấu đóng mở ngoặc ở sau tên các object,như là Object(), Function(), Array(), Number()…Ở đây chúng ta hãy tạm gọi là các function object.
- Trong Prototype cũng có các link
__proto__
- Tất cả các
__proto__
của các Built-in Object đều trỏ tới Funtion.Prototype. Do đó bạn hãy thử bật chrome developer console và gõ typeof Object
xem thử nhé. - Trước mắt các bạn chỉ cần khắc dấu hình ảnh này, chưa cần tìm hiểu sâu về mối quan hệ giữa chúng. Việc tìm hiểu sâu đòi hỏi phải có hiểu biết về
__proto__
trong bài sau. - Và hãy nhớ mối quan hệ sau: object() — Prototype => function object mới có prototype. Và bởi vì object() là một function, prototype là một object, cho nên proto của nó sẽ trỏ về Prototype của Function hoặc là Object.
- Tôi lấy hình trên từ trang web: http://www.bennadel.com