생성자 함수는 다음과 같이 작성합니다.
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() 메서드가 공유되는 것을 확인할 수 있습니다.