Hàm khởi tạo đối tượng trong JavaScript
Bạn thường cần tạo nhiều đối tượng cùng một kiểu. JavaScript cung cấp cho bạn nhiều cách để thực hiện việc này.
Hàm khởi tạo (Constructor Functions)
Một constructor là một hàm đặc biệt dùng để xây dựng và thiết lập các đối tượng. Hãy sử dụng từ khóa new để gọi nó. Luôn bắt đầu tên hàm bằng một chữ cái viết hoa. Điều này giúp bạn phân biệt nó với các hàm thông thường.
Nếu bạn quên từ khóa new, hàm sẽ hoạt động như một hàm tiêu chuẩn và không thể tạo ra một đối tượng đúng nghĩa.
Giá trị mặc định
Bạn có thể thiết lập các giá trị mặc định trong constructor của mình. Điều này đảm bảo các đối tượng luôn có dữ liệu hợp lệ ngay cả khi bạn thiếu một đối số.
Ví dụ:
function Person(name = "Unknown", age = 0) {
this.name = name;
this.age = age;
}
Prototype và Bộ nhớ
Việc thêm các phương thức vào một prototype sẽ thông minh hơn là thêm trực tiếp vào một constructor. Khi bạn sử dụng prototype, tất cả các thực thể (instances) sẽ dùng chung một phương thức duy nhất. Điều này giúp tiết kiệm bộ nhớ vì máy tính không phải tạo lại phương thức đó cho mỗi đối tượng mới.
Object.create()
Phương thức này tạo ra một đối tượng mới bằng cách sử dụng một đối tượng hiện có làm prototype của nó. Nó thiết lập tính kế thừa mà không cần đến constructor. Đối tượng mới có thể truy cập các thuộc tính từ đối tượng gốc.
Kế thừa Class (Class Inheritance)
JavaScript hiện đại sử dụng các class để xử lý tính kế thừa. Bạn có thể tạo một lớp con (child class) kế thừa từ một lớp cha (parent class). Hãy sử dụng từ khóa super() để truyền dữ liệu từ lớp con lên lớp cha. Điều này cho phép lớp con sử dụng các thuộc tính của lớp cha trong khi vẫn có thể thêm các tính năng độc nhất của riêng nó.
Tại sao nên sử dụng constructor?
- Mã nguồn có thể tái sử dụng: Tạo nhanh nhiều đối tượng tương tự nhau.
- Tính đóng gói (Encapsulation): Giữ logic thiết lập đối tượng ở một nơi duy nhất.
- Khởi tạo dễ dàng: Thiết lập các giá trị cụ thể trong quá trình tạo.
- Tính kế thừa: Xây dựng các đối tượng phức tạp từ các đối tượng đơn giản hơn.
- Mã nguồn sạch: Giữ cho logic của bạn được tổ chức ngăn nắp và dễ đọc.
Source: https://www.geeksforgeeks.org/javascript/js-constructor-method/ Source: https://www.w3schools.com/js/js_object_constructors.asp Full post: https://dev.to/kamalesh_ar_6252544786997/object-constructors-in-javascript-2e96
Cộng đồng học tập tùy chọn: https://t.me/GyaanSetuAi