• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

강의 후반부 질문 있습니다.

19.11.19 02:30 작성 조회수 127

2

안녕하세요. 좋은 강의 잘 듣고 있습니다!

강의 후반부 Q&A에 나온 코드 쳐보니

class A {
  constructor (a, b) {
      this.= a;
      this.= b;
  }
}
class B extends A {
  constructor () {}
}
class C extends B {
  constructor (a, b, c) {
      super(a, b);
      this.= 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

·

답변을 작성해보세요.

2

맞습니다.

extends한 subClass의 constructor에서는 super를 호출하지 않으면 안됩니다.

강의 당시에는 어떻게 에러 없이 실행이 되었을까? 하고 살펴 봤더니, B 클래스의 constructor에 오타가 있었네요 ^^;

오타 덕분에 생성자가 아닌 consturctor 라는 별개의 메소드로 인식하였고,

constructor 메소드는 '생략'한 것으로 여겨서 문제가 없었던 것입니다.

0

moon님의 프로필

moon

질문자

2019.11.19

아... 저도 이제 다시 보니 강의내용에 오타가 보이네요 ㅎㅎㅎ

빠른 답변 감사합니다!