𝗢𝗯𝗷𝗲𝗰𝘁 𝗖𝗼𝗻𝘀𝘁𝗿𝘂𝗰𝘁𝗼𝗿𝘀 𝘁𝗿𝗼𝗻𝗴 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁
Các constructor trong JavaScript giúp bạn xây dựng các đối tượng một cách hiệu quả. Bạn có thể sử dụng chúng để tạo ra nhiều đối tượng có cùng cấu trúc.
Constructor Functions
Một constructor là một hàm dùng để khởi tạo các đối tượng. Hãy sử dụng từ khóa new để gọi nó. Nếu bạn quên từ khóa new, hàm sẽ không hoạt động như mong đợi.
Luôn bắt đầu tên constructor bằng một chữ cái viết hoa. Điều này giúp bạn phân biệt chúng với các hàm thông thường.
Ví dụ:
- Person(name, age)
Object.create()
Bạn có thể sử dụng Object.create() để tạo 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. Phương thức này thiết lập tính kế thừa giữa các đối tượng.
Default Values
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 của bạn luôn có dữ liệu hợp lệ. Nếu bạn không cung cấp một giá trị, constructor sẽ sử dụng giá trị mặc định.
Ví dụ:
function Person(name = "Unknown", age = 0) {
this.name = name;
this.age = age;
}
Prototypes và Memory
Việc thêm các phương thức vào một prototype giúp tiết kiệm bộ nhớ. Thay vì mỗi đối tượng đều có một bản sao riêng của một hàm, tất cả chúng sẽ dùng chung một phiên bản từ prototype.
Ví dụ:
Person.prototype.greet = function() {
console.log("Hello " + this.name);
};
Inheritance
Các Class cho phép một class kế thừa từ một class khác. Hãy sử dụng từ khóa super() để gọi constructor của lớp cha. Điều này cho phép các lớp con sử dụng các thuộc tính và phương thức từ lớp cha.
Tại sao nên sử dụng constructor?
- Khả năng tái sử dụng: Tạo nhiều đối tượng từ một khuôn mẫu duy nhất.
- Tính tổ chức: Giữ logic thiết lập đối tượng ở một nơi duy nhất.
- Khởi tạo: Thiết lập các giá trị cụ thể ngay lập tức 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.
- Khả năng bảo trì: Giúp mã nguồn của bạn dễ đọc và dễ quản lý hơn.
Nguồn: https://www.geeksforgeeks.org/javascript/js-constructor-method/ Nguồn: https://www.w3schools.com/js/js_object_constructors.asp
Bài viết đầy đủ: https://dev.to/kamalesh_ar_6252544786997/object-constructors-in-javascript-2e96