작성
·
190
0
class Zero extends Human {
constructor(type, firstName, lastName) {
super(type);
this.firstName = firstName;
this.lastName = lastName;
}
sayName() {
super.breathe();
alert(`${this.firstName} ${this.lastName}`);
}
}
이 class 선언에서 질문이 있습니다!
1. 이미 super(type); 으로 type 값을 부모 요소에서 가져오기로 결정했는데, 굳이 생성자에서 argument로 type을 받는 이유가 있을까요?
2. 또, 제가 dart 언어를 공부하다 와서 헷갈리는 부분일수도 있지만, JS에서 class 내의 property를 설정해주기 위해서는 꼭 생성자의 argument로 넘겨주어야 하는 건가요?
3. 이어서 첫번째 질문으로 돌아가자면, class 선언문 내에
const type = super(type);
이런 식으로 property를 설정해주고 생성자에서 super(type);을 빼주면 안될까요?
이상 3가지 질문을 드리고 싶습니다. 좋은 강의 감사드립니다!
답변 1
1
1. 부모에서 가져오는게 아니라 부모 클래스에 가져다 주는 겁니다. 부모 클래스에 this.type = type; 이 있으니 여기에 type을 가져다주는 겁니다.
2. 아뇨. setter처럼 만드실 수도 있습니다. property는 동적으로 나중에 만들 수 있습니다.
3. super는 property로 못 뺍니다.