Javascript.Basic - Bài 2 - Built-in(Global) object và mối quan hệ của nó.

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
Ở trên chỉ là vài object có sẵn. Nếu các bạn cảm thấy khái niệm object có sẵn là khó hiểu thì hãy hình dung như nó đóng vai trò như là các Data Type trong Java hay C. Rõ ràng bạn có thể có ngay một đối tượng date từ Date mà không cần phải tốn thời gian định nghĩa Date là gì.
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ệ

Javascript Object Relationships
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.