Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Default constructor trong JavaScript là gì?

Đị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ập this.
  • super() gọi constructor của parent class.
  • Constructor không trả về giá trị (trả về instance tự động).