Как предоставить доступ метода класса к экземплярам объектов - PullRequest
0 голосов
/ 26 января 2019

Я пытаюсь создать серию объектов, которые представляют персонажей в игре.Каждый объект должен иметь доступ к набору методов класса, представляющих основные неуникальные действия, которые может выполнять каждый персонаж (бегать, сражаться, защищаться и т. Д.).Каждое действие должно иметь доступ к значениям в каждом объекте, таким как имя персонажа, возраст или оружие.Я знаю, что могу инициализировать каждый объект с помощью своих собственных методов для доступа к экземплярам объекта, но для базовых команд, которые каждый символ совместно использует, должен быть более эффективный способ сделать это.

    //create character object 
    var Character = new Character(name, age, weapon, armor, item);

    //initialize instances of character object
    function Character(name, age, weapon, armor, item) {
        this.name = name;
        this.age = age;
        this.weapon = weapon;
        this.armor = armor;
        this.item = item;
    };
        //create new characters from character object model
        var knight = new Character(Shawn, 29, Broadsword, ChestPlate, 
        HealthPotion);

        var mage = new Character(Jessica, 28, Staff, Robe, ManaPotion);

        var thief = new Character(Cody, 28, Knife, Vest, HealthPotion);

        //create class methods
        Character.prototype.attack = function(name, weapon) {
          alert(this.name + " " + "attacked using their" + " " + 
          this.weapon + "!"); 
        }

        Character.prototype.defend = function(name) {
          alert(this.name + " " + "holds their defenses!"); 
        }


        Character.prototype.useItem = function(name, item) {
          alert(this.name + " " + "used" + " " + this.item + "!"); 
        }

        Character.prototype.run = function(name) {
          alert(this.name + " " + "has fled the battle"); 
        }

        attack(knight); 

, когда атака ничего не вызываетслучается.

...