안녕하세요 애플님
다음과 같은 코드에서 아버지 클래스에는 상속만 이루어지고 새롭게 생성된 코드가 없습니다 . 따라서 super를 사용하지 않아 할아버지 클래스의 생성자를 호출하고 있지 않습니다.
하지만 마지막 코드에서 자식을 출력해보면
아버지 {성: 'Kim', 이름: '민수'} 처럼 출력이 됩니다.
원래 같으면 super(name) 과 같은 코드가 존재해야 자식 오브젝트에서 파라미터값을 전달하면 민수가 출력되지 않나요?
할아버지 class의 constructor()에는 name 파라미터를 입력할 수 있었고, super()을 통해서명시해주셔야 할아버지가 가진 모든 속성들을 정확히 상속받을 수 있다고 하셨습니다.
그렇다면 아래의 경우에는 아버지클래스에는 아무런 명시가 없는데 자식에서 준 파라미터가 할아버지 클래스의 생성자 함수에 들어가 사용이 가능한데(사요 가능하니까 값이 출력됨) 왜 가능한 것인지 궁금합니다.
class 할아버지{
constructor(name){
this.성 = 'Kim';
this.이름 = name;
}
}
class 아버지 extends 할아버지{
}
var 자식 = new 아버지('민수');
console.log(자식);