Định nghĩa
Nếu class không khai báo constructor, JS tự tạo default constructor rỗng.
Cú pháp ngầm
// Base class
class Base {
// Tự động có:
constructor() {}
}
// Derived class (kế thừa)
class Derived extends Base {
// Tự động có:
constructor(...args) {
super(...args); // truyền args cho parent
}
}
Khi nào cần viết constructor tường minh?
- Cần khởi tạo property:
this.prop = value. - Cần validate/transform tham số.
- Derived class cần gọi
super()với args cụ thể.
Ví dụ có constructor
class Department {
constructor(name) {
this.name = name;
this.employees = [];
}
}
class Employee extends Department {
constructor(name, deptName) {
super(deptName); // bắt buộc gọi super() trước this
this.name = name;
}
}
const emp = new Employee("An", "Engineering");
console.log(emp.name); // "An"
console.log(emp.deptName); // "Engineering" (từ parent)
Quy tắc quan trọng
- Chỉ được có một constructor mỗi class.
- Derived class bắt buộc gọi
super()trước khi truy cậpthis. super()gọi constructor của parent class.- Constructor không trả về giá trị (trả về instance tự động).