Ứng dụng đối tượng ECMAScript
- Trang trước Hướng đối tượng
- Trang tiếp theo Kiểu đối tượng
Tạo và hủy bỏ đối tượng đều xảy ra trong quá trình thực thi JavaScript, hiểu ý nghĩa của khung công tác này là rất quan trọng để hiểu toàn bộ ngôn ngữ.
Tạo và khởi tạo
Cách tạo đối tượng là sử dụng từ khóa new sau đó là tên lớp cần khởi tạo:
var oObject = new Object(); var oStringObject = new String();
Dòng mã đầu tiên tạo ra một đối tượng của lớp Object và lưu trữ nó trong biến oObject. Dòng mã thứ hai tạo ra một đối tượng của lớp String và lưu trữ nó trong biến oStringObject. Nếu hàm构造函数 không có tham số, dấu ngoặc đơn không bắt buộc. Do đó, có thể viết lại hai dòng mã trên dưới dạng sau:
var oObject = new Object; var oStringObject = new String;
Tham chiếu đối tượng
Trong phần trước, chúng tôi đã giới thiệuKhái niệm loại tham chiếu。Trong ECMAScript, không thể truy cập vào biểu diễn vật lý của đối tượng mà chỉ có thể truy cập vào tham chiếu của đối tượng. Mỗi khi tạo đối tượng, phần lưu trữ trong biến chứa là tham chiếu của đối tượng đó, không phải là đối tượng本身.
Loại bỏ đối tượng
ECMAScript có chương trình thu gom đơn vị lưu trữ vô ích (garbage collection routine), có nghĩa là không cần phải hủy bỏ đối tượng để giải phóng bộ nhớ. Khi không còn tham chiếu nào đến đối tượng, đối tượng đó được coi là bị loại bỏ (dereference). Khi chạy chương trình thu gom đơn vị lưu trữ vô ích, tất cả các đối tượng bị loại bỏ đều bị hủy bỏ. Mỗi khi hàm thực hiện xong mã của nó, chương trình thu gom đơn vị lưu trữ vô ích sẽ chạy, giải phóng tất cả các biến cục bộ, và trong một số trường hợp không thể dự đoán trước khác, chương trình thu gom đơn vị lưu trữ vô ích cũng sẽ chạy.
Đặt tất cả các tham chiếu đến đối tượng thành null để xóa bỏ đối tượng một cách强制性. Ví dụ:
var oObject = new Object; // Làm điều gì đó với đối tượng ở đây oObject = null;
Khi biến oObject được đặt thành null, tham chiếu đến đối tượng được tạo đầu tiên không còn tồn tại. Điều này có nghĩa là khi chạy chương trình thu gom bộ nhớ rác lần sau, đối tượng này sẽ bị xóa bỏ.
Mỗi khi sử dụng xong một đối tượng, hãy xóa bỏ nó để giải phóng bộ nhớ, điều này là một thói quen tốt. Điều này cũng đảm bảo rằng không còn sử dụng đối tượng đã không thể truy cập được, từ đó ngăn ngừa sự xuất hiện của lỗi thiết kế chương trình. Ngoài ra, các trình duyệt cũ (như IE/MAC) không có chương trình thu gom bộ nhớ rác toàn diện, vì vậy khi tải xuống trang, đối tượng có thể không được xóa bỏ một cách chính xác. Xóa bỏ đối tượng và tất cả các thuộc tính của nó là cách tốt nhất để đảm bảo việc sử dụng bộ nhớ một cách chính xác.
Lưu ý:Hãy cẩn thận khi xóa bỏ tất cả các tham chiếu đến đối tượng. Nếu đối tượng có hai hoặc nhiều tham chiếu, để xóa bỏ đối tượng một cách chính xác, bạn phải đặt tất cả các tham chiếu đó thành null.
Liên kết sớm và liên kết muộn
Gọi là liên kết (binding), là phương pháp kết hợp giao diện của đối tượng với đối tượng实例.
Liên kết sớm (early binding) là việc định nghĩa thuộc tính và phương thức của đối tượng trước khi thực thể hóa đối tượng, từ đó trình biên dịch hoặc trình giải thích có thể chuyển đổi trước mã máy. Trong các ngôn ngữ như Java và Visual Basic, với liên kết sớm, có thể sử dụng IntelliSense (chức năng cung cấp danh sách thuộc tính và phương thức của đối tượng cho nhà phát triển) trong môi trường phát triển. ECMAScript không phải là ngôn ngữ loại mạnh, vì vậy không hỗ trợ liên kết sớm.
Phía khác, liên kết muộn (late binding)指的是 trình biên dịch hoặc trình giải thích không biết loại đối tượng trước khi chạy. Sử dụng liên kết muộn, không cần kiểm tra loại đối tượng, chỉ cần kiểm tra đối tượng có hỗ trợ thuộc tính và phương thức hay không. Tất cả các biến trong ECMAScript đều sử dụng phương pháp liên kết muộn. Điều này cho phép thực hiện nhiều thao tác đối tượng mà không có bất kỳ hình phạt nào.
- Trang trước Hướng đối tượng
- Trang tiếp theo Kiểu đối tượng