- class 선언(declaration)은 prototype 기반 상속을 사용하여 새로운 class를 생성하고
- new 연산자(operator)를 통해 instance object를 생성한다
- extends 키워드는 class를 다른 class의 자식으로 만들기 위해 사용된다(상속)
- super 키워드는 부모 오브젝트의 함수를 호출하거나, class의 속성을 호출한다
- prototype: 객체를 상속하기 위하여 JavaScript에서 사용하는 방식, 프로토타입 객체를 가져 메소드와 속성들을 상속받는다
- getter: 접근자, get 구문은 객체의 속성 접근 시 호출할 함수를 바인딩
- setter: 설정자, set 구문은 객체의 속성에 할당을 시도할 때 호출할 함수를 바인딩
class Grub {
constructor(age, color, food) {
this.age = 0;
this.color = 'pink';
this.food = 'jelly';
}
eat() {
return 'Mmmmmmmmm jelly'
}
get age() {
return this._age;
}
set age(value) {
this._age = value < 0 ?0 :value;
}
class Bee extends Grub {
constructor(job) {
super()
this.age = 5;
this.color = 'yellow';
this.job = 'Keep on growing';
}
convert() {
return 'jelly melting.'
}
}
let bee1 = new Bee()
bee1.__proto__ === Bee.prototype
bee1.__proto__.__proto__ ===
Bee.__proto__ ===
Grub.prototype
eat() {
console.log('mmm yammy');
super.eat();
}