코어 자바스크립트를 보며 공부한 내용입니다.
자바스크립트는 프로토타입 기반 언어이다
=> '상속'의 개념이 없어 상속에 대한 니즈가 발생하였다.
=> ES6에서 클래스 문법이 추가되었다.
어떤 사물의 공통 속성을 모아 정의한 추상적인 개념
클래스의 속성이지니는 구체적인 사례
프로토타입 메서드
인스턴스에서 직접 호출 할 수 있는 메서드
스태틱 메서드
인스턴스에서 직접 접근할 수 없는 메서드
(생성자 함수를 this로 해야만 호출 가능)
1-3에서 언급한 "사용에 따라 추상적 or 구체적 개체가 될 수 있다."는 것의 의미는 아래와 같다.
1) Class가 프로토타입 메서드의 역할을 할 때에는 추상적 개체가 되고
2) Class가 스태틱 메서드의 역할을 할 경우, 클래스 자체가 하나의 개체로 취급된다.
전제조건 : constructor 프로퍼티가 원래의 생성자 함수를 바라보도록 조정해야한다.
var Rectangle = class {
constructor (width, height) {
this.width = width;
this.height = height;
}
getArea () {
return this.width * this.height;
}
};
//ES6 클래스 문법 도입
var Square = class extends Rectangle {
constructor (width) {
super(width, width);
}
getArea () {
console.log('size is :', super.getArea());
}
};