반응형
Javascript - Class & Super
Class는 객체를 생성하기 위한 템플릿이다.
Class와 Constructor, Super에 대해서 알아보자.
기본 Class
class 선언을 통해서 Class를 정의
constructor 메서드: class로 생성된 객체를 생성하고 초기화하기 위한 특수한 메서드
이는 클래스 안에 한 개만 존재할 수 있음.
만약 클래스에 여러 개의 constructor 메서드가 존재하면 SyntaxError가 발생
[실행순서]
new Lion("King")을 했을때
- 새로운 객체가 생성됨
- 넘겨받은 인수와 함께 constructor가 자동으로 실행됨. 이때 인수 "King"이 this.name에 할당됨
- 이후 myLion.getName()과 같은 객체 메서드를 호출할 수 있음
상속
Animal -> 부모클래스
Lion -> 자식클래스
extends '부모클래스명'을 적어서 부모클래스를 상속받음
※ super을 사용하지 않았을때
Must call super constructor 이라는 오류가 뜸
이말은 super constructor를 사용해야 한다는 것.
super 사용
임의로 super(name)을 넣어보자.
leg부분에 Lion클래스에서 입력받은 name이 들어간 것이 보임.
즉, super()은 부모의 input()값을 넣어야함. (=부모 constructor의 인풋값)
올바른 super의 사용
Super은 부모의 인풋이다.
※ 예제
해당 예제는 React에서 쓰이는 부분을 가져온 것인데
super(props)가 무엇을 의미하는지 유추해 보았을때
React.Component의 인풋값을 의미함을 알아낼 수 있다.!
반응형
댓글