더북(TheBook)

생성자 함수는 다음과 같이 작성합니다.

function Monster(name, hp, att) { 
  this.name = name;
  this.hp = hp;
  this.att = att; 
}
Monster.prototype.attack = function(monster) {
  monster.hp -= this.att;
};
const monster1 = new Monster('슬라임', 25, 10);
const monster2 = new Monster('슬라임', 26, 9);
monster1.attack === monster2.attack; // true

attack() 메서드에 프로토타입(prototype)이라는 새로운 속성이 보입니다. prototype은 생성자 함수로 생성한 객체가 공유하는 속성입니다. 생성자 함수에서는 이처럼 prototype 속성 안에 메서드를 추가해야 메서드를 재사용할 수 있습니다. 마지막 줄을 보면 attack() 메서드가 공유되는 것을 확인할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.