강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của sume
sume

câu hỏi đã được viết

Học Javascript ES6+ đúng cách - Trung cấp

Class Kế thừa - Chi tiết

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

Đã giải quyết

Viết

·

266

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()를 호출하지 않으면 에러가 발생하는거 아닌가요?

강의에 나온 내용 그대로 실행이 원래 잘 되어야 되는건가요?..

es6javascript

Câu trả lời 2

2

jaenam님의 프로필 이미지
jaenam
Người chia sẻ kiến thức

맞습니다.

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

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

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

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

0

summer님의 프로필 이미지
summer
Người đặt câu hỏi

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

빠른 답변 감사합니다!

Hình ảnh hồ sơ của sume
sume

câu hỏi đã được viết

Đặt câu hỏi