constructor라는 함수 안에 있는 애들을
new class 나 extends 한 애들이 상속 받고
constructor 에 인자로 주어진 애들은
다음 상속 받은 애의 super에 써줘야 this를 쓸 수 있다
class Grub {
// 생성자 함수 생성
constructor (age = 0; color = 'pink') {
this.age = age;
this.color = color;
this.food = 'jelly'
}
eat() {return `Mmmmmmmmm Jelly`}
}
module.exports = Grub;
const Grub = require('./Grub') // Grub 가져오기
class Bee extends Grub { // extends 로 Grub 상속받기
// 생성자 함수 생성
constructor (age = 5; job = 'Keep on growing'){
super(age, 'yello')
this.job = job;
}
}
module.exports = Bee;
// Bee 가져오기(Bee는 이미 Grub을 상속받았으니까 Grub은 안 가져와도 됨)
const Bee = require('./Bee')
class ForagerBee extends Bee { // extends 로 Bee 상속받기
// 생성자 함수 생성
constructor (age = 10; job = 'find pollen'){
super(age, job)
this.canFly = true
this.treasureChest = [];
}
// 메소드 생성 후 treasureChest 에 forage의 인자들 추가하기
forage(a){this.treasureChest.push(a)}
}
module.exports = ForagerBee;
// Bee 가져오기(Bee는 이미 Grub을 상속받았으니까 Grub은 안 가져와도 됨)
const Bee = require('./Bee')
class HoneyMakerBee extends Bee { // extends 로 Bee 상속받기
// 생성자 함수 생성
constructor (age = 10; job = 'make honey'){
super(age, job)
this.honeyPot = 0;
}
// 메소드 생성 후 honeypot +1 하기
makeHoney(){this.honeyPot += 1}
// 메소드 생성 후 honeypot -1 하기
giveHoney(){this.honeyPot -= 1}
}
module.exports = HoneyMakerBee;