Kỹ thuật hướng đối tượng ECMAScript
- Trang trước Bí ẩn (closure)
- Trang tiếp theo Ứng dụng đối tượng
Terminology hướng đối tượng
Đối tượng
ECMA-262 định nghĩa đối tượng (object) là “một tập hợp thuộc tính không có trật tự, mỗi thuộc tính chứa một giá trị nguyên thuỷ, đối tượng hoặc hàm”. Đ严格 nói, điều này có nghĩa là đối tượng là một mảng các giá trị không có trật tự.
Mặc dù ECMAScript được định nghĩa đối tượng như vậy, nhưng định nghĩa phổ biến hơn của nó dựa trên biểu diễn từ ngữ (người, địa điểm hoặc vật thể).
Lớp
Mỗi đối tượng đều được định nghĩa bởi lớp, có thể coi lớp là công thức của đối tượng. Lớp không chỉ định nghĩa giao diện (interface) của đối tượng (thuộc tính và phương pháp mà nhà phát triển truy cập) mà còn định nghĩa công việc nội bộ (mã để thuộc tính và phương pháp hoạt động). Biên dịch器和 trình giải thích xây dựng đối tượng dựa trên mô tả của lớp.
Bản sao
Khi chương trình sử dụng lớp để tạo đối tượng, đối tượng được tạo ra được gọi là bản sao (instance) của lớp. Số lượng đối tượng được tạo ra bởi lớp bị giới hạn duy nhất bởi bộ nhớ vật lý của máy chạy mã. Mỗi bản sao có hành vi tương tự, nhưng mỗi bản sao xử lý một tập dữ liệu độc lập. Quá trình tạo bản sao đối tượng từ lớp được gọi là hiện thực hóa (instantiation).
Trong các chương trước, chúng ta đã đề cập rằng ECMAScript không có lớp chính thức. Thay vào đó, ECMA-262 mô tả đối tượng như là công thức của đối tượng. Đây là một giải pháp trung gian logic của ECMAScript vì công thức đối tượng thực chất là đối tượng bản thân. Mặc dù lớp không thực sự tồn tại, chúng ta vẫn gọi công thức đối tượng là lớp vì hầu hết các nhà phát triển đều quen thuộc với thuật ngữ này và về chức năng, cả hai là tương đương.
Yêu cầu của ngôn ngữ hướng đối tượng
Một ngôn ngữ hướng đối tượng cần cung cấp cho nhà phát triển bốn khả năng cơ bản:
- Encapsulation - Khả năng lưu trữ thông tin liên quan (dù là dữ liệu hay phương pháp) trong đối tượng
- Composition - Khả năng lưu trữ một đối tượng trong một đối tượng khác
- Inheritance - Khả năng nhận thuộc tính và phương pháp từ một lớp (hoặc nhiều lớp) khác
- Polymorphism - Khả năng viết các hàm hoặc phương pháp có thể chạy bằng nhiều cách
ECMAScript hỗ trợ những yêu cầu này, vì vậy có thể coi là hướng đối tượng.
Cấu thành của đối tượng
Trong ECMAScript, đối tượng được cấu thành từ thuộc tính (attribute), thuộc tính có thể là giá trị nguyên thuỷ hoặc giá trị tham chiếu. Nếu thuộc tính chứa là hàm, nó sẽ được coi là phương pháp (method) của đối tượng, ngược lại thuộc tính đó sẽ được coi là thuộc tính (property) của đối tượng.
- Trang trước Bí ẩn (closure)
- Trang tiếp theo Ứng dụng đối tượng