인스턴스 생성 오류
중요도: 5
아래 코드에서 Rabbit
은 Animal
을 상속받습니다.
그런데 Rabbit
객체를 만들 수가 없습니다. 무엇이 잘못된 것일까요? 코드를 수정해보세요.
class Animal {
constructor(name) {
this.name = name;
}
}
class Rabbit extends Animal {
constructor(name) {
this.name = name;
this.created = Date.now();
}
}
let rabbit = new Rabbit("White Rabbit"); // Error: this is not defined
alert(rabbit.name);
자식 클래스의 생성자에서 super()
를 호출하지 않아 에러가 발생했습니다.
수정 후 코드는 다음과 같습니다.
class Animal {
constructor(name) {
this.name = name;
}
}
class Rabbit extends Animal {
constructor(name) {
super(name);
this.created = Date.now();
}
}
let rabbit = new Rabbit("White Rabbit"); // 잘 동작합니다.
alert(rabbit.name); // White Rabbit