Beesbeesbees

비트·2023년 5월 28일
0

CodeStates

목록 보기
24/54
post-thumbnail

객체지향 프로토타입

프로토타입 이전 블로그 참고하기

mdn_프로토타입 상속


Grub

새로운 클래스를 작성하기

class Grub {
  constructor() {
    this.age = 0;
    this.color = "pink";
    this.food = "jelly";
  };

  eat() {
    return "Mmmmmmmmm jelly"
  }
}

module.exports = Grub;
  • constructor() 메소드는 Grub 클래스의 생성자를 의미.
  • eat()은 멤버 메소드.
    • 클래스의 메소드는 생성자 다음에 아무 메소드나 추가할 수 있다.



Bee

생성된 클래스에서 속성 바꾸고 상속받기

const Grub = require('./1-Grub');

class Bee extends Grub {
  constructor() {
    super()
    this.age = 5;
    this.color = "yellow";
    this.job = "Keep on growing"
  }
}

module.exports = Bee;
  • extends 키워드를 통해 상속 받을(Grub) 클래스를 명시.
  • super 키워드를 통해 상위 클래스의 멤버를 상속받을 수 있다.



ForagerBee

forage 메소드에 매개변수(보물) 넣기

const Bee = require('./2-Bee');

class ForagerBee extends Bee {
  constructor() {
    super()
    this.age = 10;
    this.job = "find pollen";
    this.canFly = true;
    this.treasureChest = [];
  }
  forage(보물) {
    this.treasureChest.push(보물)
  }
}

module.exports = ForagerBee;



HoneyMakerBee

메서드에 연산자 사용하기

const Bee = require('./2-Bee');

class HoneyMakerBee extends Bee {
  constructor() {
    super()
    this.age = 10
    this.job = "make honey"
    this.honeyPot = 0
  }
  makeHoney() {
    this.honeyPot++
  }
  giveHoney() {
    this.honeyPot--
  }
}

module.exports = HoneyMakerBee;
profile
Drop the Bit!

0개의 댓글