-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
해결됨
강의 후반부 질문 있습니다.
19.11.19 02:30 작성 조회수 136
2
안녕하세요. 좋은 강의 잘 듣고 있습니다!
강의 후반부 Q&A에 나온 코드 쳐보니
class A {
constructor (a, b) {
this.a = a;
this.b = b;
}
}
class B extends A {
constructor () {}
}
class C extends B {
constructor (a, b, c) {
super(a, b);
this.c = c;
}
}
const c = new C(1, 2, 3);
console.log(c);
class B에 constructor를 넣으면
Must call super constructor in derived class before accessing 'this' or returning from derived constructor
에러가 발생합니다. 두 번째에 메소드 테스트 할 때도 마찬가지입니다.
자식 클래스의 constructor에서 super()를 호출하지 않으면 에러가 발생하는거 아닌가요?
강의에 나온 내용 그대로 실행이 원래 잘 되어야 되는건가요?..
답변을 작성해보세요.
2
정재남
지식공유자2019.11.19
맞습니다.
extends한 subClass의 constructor에서는 super를 호출하지 않으면 안됩니다.
강의 당시에는 어떻게 에러 없이 실행이 되었을까? 하고 살펴 봤더니, B 클래스의 constructor에 오타가 있었네요 ^^;
오타 덕분에 생성자가 아닌 consturctor 라는 별개의 메소드로 인식하였고,
constructor 메소드는 '생략'한 것으로 여겨서 문제가 없었던 것입니다.
0
답변 2