OOP를 처음 접했고 OOP 원칙을 배우기 위해 간단한 게임 스크립트를 작성하고 있습니다.프로토 타입 함수 호출 (범위) 외부의 JS OOP
//main game function
battleLevel.prototype =
{
battle:function() {
this.obj1 = {
enterMonsterMenu: function() {
return console.log('enterMonsterMenu');
}
};
},
} /* end OOP prototype */
//external contructor
var Hero = function (warpX, warpY, game, name, life, mana, speed) {
//some code
};
Hero.prototype.monsterSelectUp = function() {
console.log('monsterSelectUp');
//this.enterMonsterMenu();
battleLevel.prototype.battle.call(obj1);
};
은 내가 monsterSelectUp()를 호출하여 enterMonsterMenu() 메소드에 액세스하려면하지만 난 그것을 제대로 호출 할 수 없습니다. 내가 뭘 잘못하고 있니?
답장을 보내 주셔서 감사합니다. :) 여기 범위 문제를 해결하려고합니다. battleLevel.prototype 내부에있는 다른 메서드를 다른 프로토 타입 메서드에서 호출 할 수 있는지조차 모르겠습니까? –
@ PawełKwiatkowski 당신은 프로토 타입에서 메소드를 호출해서는 안됩니다. 대신에 일반 오브젝트를 작성하여 사용해야합니다. 예를 들어,'level = new BattleLevel(); 영웅 = 새로운 영웅(); hero.enterLevel (레벨)'과'enterLevel' 안에 레벨 메소드'level.doSomethingWithHero (this)'를 호출 할 수 있습니다. –
@ PawełKwiatkowski 또한 '전투'방법에서 새 오브젝트를 생성하고 'this'에 지정하는 것이 중요하지 않습니다. 무엇을 성취하려고합니까? "obj1"의 목적은 무엇입니까? –