반응형
상속
OPP에서 상속은 부모클래스의 특성을 자식클래스가 물려받는 시스템을 말한다. 이를 통해 개발자는 두번 똑같은 내용을 입력할 수고를 덜 수 있다.
class Polygon {
constructor(height, width) {
this.name = 'Polygon';
this.height = height;
this.width = width;
}
}
부모 클래스 Polygon을 선언하였다. constructor(생성자함수) 로 매개변수 height, width를 선언한다.
class Square extends Polygon { //extends를 이용해 Polygon을 상속받는다.
constructor(length) { // 매개변수 length를 선언한다.
super(length, length); // 부모 클래스 Polygon의 매개변수에 차례대로 할당된다.
// 여기선 height, width 둘다 변수 length 이다.
this.name = 'Square';
}
get area() {
return this.height * this.width; // 여기서 this는 Polygon이다.
}
set area(value) {
this.area = value;
}
}
자식 클래스 Square를 선언하였다. constructor(생성자함수) 로 매개변수 length 를 선언한다.
주석에서 볼 수 있듯 super를 이용해 부모 클래스의 매개변수에 할당될 값을 자식 클래스에서 입력할 수 있다.
super는 this보다 먼저 호출되어야 한다.
let two = new Square(2)
console.log(two.area) // 4
two 라는 변수에 클래스 Square의 인스턴스를 할당한다.
new 선언자를 통해 인스턴스가 만들어지면 생성자 함수가 실행되어 인스턴스에 length를 할당한다.
Square는 부모 클래스 Pologon으로부터 상속받고 two.area에는 4가 할당된다.
반응형
'개발 > Javascript' 카테고리의 다른 글
바닐라자바스크립트로 허접한 날씨 앱 만들기 (0) | 2021.09.08 |
---|---|
JS : 꼬리재귀는 일반재귀함수가 가진 메모리,성능 문제를 해결한다. (0) | 2021.08.30 |
JS: call, apply, bind (0) | 2021.08.22 |
JS에서 문자열의 특정 문자들을 반환하는 메서드 (0) | 2021.08.15 |
JS에서 배열을 문자열로 바꾸는 메서드, Join() (0) | 2021.08.15 |