นิยาม
Default Constructor คือ Constructor ที่ถูกสร้างขึ้นอัตโนมัติเมื่อคลาสไม่ได้กำหนด Constructor เอง โดยจะเป็นฟังก์ชันว่างเปล่าที่ไม่ทำอะไรเลย
Syntax
// Default constructor แบบปกติ
constructor() {}
สำหรับ Derived Class (คลาสลูก)
ถ้าคลาสลูกไม่มี constructor ของตัวเอง จะได้ default constructor ที่เรียก super(...args) อัตโนมัติ:
constructor(...args) {
super(...args);
}
ตัวอย่าง
class Animal {
constructor(name) {
this.name = name;
}
}
class Dog extends Animal {
// ไม่มี constructor -> ใช้ default constructor
// ซึ่งเทียบเท่ากับ:
// constructor(...args) { super(...args); }
}
const dog = new Dog("Buddy");
console.log(dog.name); // "Buddy"
ข้อสังเกต
- ถ้าคลาสลูกมี constructor ของตัวเอง ต้องเรียก
super()ก่อนเข้าถึงthis - Default constructor จะส่งอาร์กิวเมนต์ทั้งหมดไปให้ parent constructor โดยอัตโนมัติ
- ถ้าคลาสแม่ (parent) มี constructor ที่ต้องการพารามิเตอร์บังคับ คลาสลูกที่ไม่มี constructor จะส่งต่ออาร์กิวเมนต์นั้นไปให้อัตโนมัติ
สรุป
Default Constructor ช่วยลดโค้ดซ้ำเมื่อคลาสลูกไม่ต้องการเพิ่มตรรกะการสร้างอ็อบเจกต์พิเศษ และเพียงแค่ส่งต่อพารามิเตอร์ให้คลาสแม่