JavaScript에서 클래스에 생성자(constructor) 메서드를 명시적으로 작성하지 않으면, 자바스크립트 엔진이 자동으로 기본 생성자(default constructor)를 제공합니다. 즉, 개발자가 아무런 생성자도 정의하지 않은 경우에 기본 생성자가 만들어지며, 이를 통해 객체가 문제없이 인스턴스화될 수 있습니다.
기본 생성자의 문법
기본 생성자는 다음과 같은 형태로 정의됩니다.
constructor() {}파생 클래스(자식 클래스)의 경우
반면, 다른 클래스를 상속받는 파생 클래스(derived class)에서는 부모 클래스의 생성자를 반드시 호출해야 하므로, 기본 생성자는 아래와 같은 형태로 동작합니다.
constructor(...args) {
super(...args);
}이처럼 파생 클래스의 기본 생성자는 전달된 모든 인수(...args)를 그대로 부모 클래스의 생성자인 super()에 넘겨주는 역할을 합니다. 따라서 상속 구조에서는 부모 클래스의 초기화 로직이 자동으로 실행되도록 보장됩니다.
정리
- 생성자를 직접 작성하지 않으면 JavaScript가 자동으로 기본 생성자를 추가합니다.
- 일반 클래스의 기본 생성자는 빈 함수 형태인
constructor() {}입니다. - 파생 클래스의 기본 생성자는 받은 인수를
super(...args)로 전달하여 부모 클래스의 생성자를 호출합니다.