Achievement Goals
- 클래스와 인스턴스라는 용어를 이해할 수 있다.
- new
키워드의 사용법을 이해할 수 있다.
- class
키워드의 사용법을 이해할 수 있다.
- 현실 세계의 모델을 바탕으로 클래스의 메소드와 속성을 디자인할 수 있다.
- 객체 지향 프로그래밍 특징을 이해할 수 있다.
- 캡슐화(단위로 묶는 것, 은닉)
- 상속
- 추상화(인터페이스 단순화 사용)
- 다형성
- JavaScript에서 객체 지향 프로그래밍을 구현할 수 있다.
- Prototype이 무엇인지 이해할 수 있다
- 객체 지향 프로그래밍의 상속(Inheritance)의 개념을 이해하고 코드로 작성할 수 있다.
- 상속관계를 가진 현실 세계의 모델을 코드로 작성할 수 있다.
- 클래스 상속의 원리를 이해할 수 있다.
- Prototype chain을 이해하고 설명할 수 있다. (__proto__
)
학습 내용
ES6 class이용해 설계도 제작
class Bug {
constructor(A,B,C,D){
this.age=A
this.color=B
this.food=C
this.job=D
}
eat(){
return `Mmmmmm ${this.food}`
}
}
설계도를 바탕으로 인스턴스 제작
let Bee = new Bug(5,'yellow','honey','벌 키우기')
Bee.age
Bee.eat()
프로토타입
Bug.prototype.constructor === Bug
Bug.prototype === Bee.__proto__
Bug.prototype.eat === Bee.eat
상속 Inheritance
class HoneyMakerBee extends Bee{
constructor(color,food){
super(color,food)
this.age=10
this.job='find pollen'
this.canFly=true
this.treasureChest=[]
}
forage(treasure){
this.treasureChest.push(treasure)
}
}