더북(TheBook)

예제 코드의 createMonster() 함수는 12장에서 텍스트 롤플레잉 게임(RPG, Role-Playing Game)을 만들 때 사용할 몬스터 정보를 객체로 만드는 함수입니다. createMonster() 함수를 세 번 호출했으니 몬스터 객체 셋을 생성한 것과 같습니다. 슬라임 몬스터 객체는 각각 체력(hp), 공격력(att)이 조금씩 다릅니다. 이렇게 달라지는 부분은 함수의 인수로 넘기면 됩니다.

공장 함수 대신 다음과 같이 생성할 수도 있습니다. 이 코드에서는 객체의 속성을 this에 대입했습니다. this2.7.2절에서 자세하게 다룹니다. 그리고 함수를 호출할 때는 함수 이름 앞에 new를 붙입니다. new를 붙여 호출할 때마다 새로운 객체가 생성됩니다. 이때 this는 새롭게 생성된 객체를 가리킵니다. 즉, this.name = name;은 새롭게 생성된 객체의 속성을 수정하는 코드입니다.

function Monster(name, hp, att) { 
  this.name = name;
  this.hp = hp; 
  this.att = att; 
}
const monster1 = new Monster('슬라임', 25, 10);
const monster2 = new Monster('슬라임', 26, 9);
const monster3 = new Monster('슬라임', 25, 11);
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.