如何为Javascript变量分配属性

如何为Javascript变量分配属性,javascript,Javascript,所以我正在制作一个中世纪主题的游戏,我需要一个系统,为不同类型的部队装备盔甲、武器和盾牌的组合。我曾经有一个系统,可以显示我有多少个可能的组合,但是很难筛选出一百个组合,看看你有多少部队。所以,我决定有一个显示所有部队的菜单,但每个部队只需要有三个插槽:装甲、武器和盾牌。当部队刚开始的时候 var basicTroopAmount = 0; 当你招募他们时,数量会增加。我只是想问,是否有人知道一种更好的方式,即每个部队都可以配备不同的装甲和武器,每个部队都可以个性化,以及如何告诉代码装

所以我正在制作一个中世纪主题的游戏,我需要一个系统,为不同类型的部队装备盔甲、武器和盾牌的组合。我曾经有一个系统,可以显示我有多少个可能的组合,但是很难筛选出一百个组合,看看你有多少部队。所以,我决定有一个显示所有部队的菜单,但每个部队只需要有三个插槽:装甲、武器和盾牌。当部队刚开始的时候

    var basicTroopAmount = 0;

当你招募他们时,数量会增加。我只是想问,是否有人知道一种更好的方式,即每个部队都可以配备不同的装甲和武器,每个部队都可以个性化,以及如何告诉代码装甲变量是装甲,不能放在武器槽中,多个装甲不能放在一个槽中。我知道这个问题很难回答,但如果有人有任何意见的话,都会有很大帮助

您可以创建一个对象并存储所需的所有属性和方法

function Troop(armor, weapon, shield) {
            var armor = armor;
            var weapon = weapon;
            var shield = shield;

            this.getTroopDetails = function() {
                console.log("Armour -> " + armor + ", Weapon -> " + weapon + ", Shield -> " + shield);
            }
        }
根据需要创建新的部队对象,并将其保存在阵列中:

        var Troop1 = new Troop("Iron","Sword","Round");
        Troop1.getTroopDetails(); //Prints Armour -> Iron, Weapon -> Sword, Shield -> Round

        var Troop2 = new Troop("Bombsuit","Lance","Square");
        Troop2.getTroopDetails(); //Prints Armour -> Bombsuit, Weapon -> Lance, Shield -> Square

        var TroopList = [];
        TroopList.push(Troop1);
        TroopList.push(Troop2);
        console.log(TroopList);
更新: 在HTML中,向按钮添加以下代码。我正在将硬编码值传递给AddForce函数,您可以传递用户输入的值:

<button type="button" onClick="TroopManager.addTroop('Iron','Sword','Round')">Add Troop</button>
在JavaScript中,实现以下功能:

var TroopManager = {
          myTroopArray : [],

          addTroop : function(armor, weapon, shield) {
            var Troop1 = new Troop(armor, weapon, shield);
            this.myTroopArray.push(Troop1);
            console.log("A new Troop has been added.")
            this.printTroops();
          },

          printTroops : function() {
            for(i=0;i<this.myTroopArray.length;i++) {
                console.log(this.myTroopArray[i].getTroopDetails());
            }

          }
        }

使用具有私有属性和公共变量的对象。您希望将部队作为对象存储在数组中。您建议如何添加这些部队变量?我希望它是,当你点击一个出现的训练按钮,那么有没有一种方法来生成新的对象呢?在按钮的“OnClick”事件中调用一个函数,并将你的处理添加到其中。请检查更新的答案。