每次调用函数时都有新对象

Kaj*_*och 0 javascript jquery object

我有这个函数来创建一个对象:

function Building(owner, type, hp) {
this.owner = owner;
this.type = type;
this.hp = hp;
}
Run Code Online (Sandbox Code Playgroud)

因此,每次调用它时,都会创建一个新对象.

var barracks = new Building(player,bBarracks,"100");
Run Code Online (Sandbox Code Playgroud)

但是我有另一个可以多次调用的函数.

function build() {
if (building == 1) {

    $("."+xPos+"-"+yPos).addClass("building-powerplant").addClass("taken");
    hudBuildings("powerPlant"); initialize();
    hudBuildings("barracks");
    ...
} ... }
Run Code Online (Sandbox Code Playgroud)

我想在每次调用build()时创建一个新对象,并为其命名为"id"+ [增加的数字],例如.id1,id2,...,id10.所以每次调用函数时,都会创建一个对象.我每次使用它时都尝试将数字增加1,但我无法弄清楚如何写入它.老实说,这有点愚蠢:

objID++;
var id+(objID) = new Building(player,bPowPlant,"100");
Run Code Online (Sandbox Code Playgroud)

任何想法如何解决这个问题?:)

jth*_*wme 5

你能把对象保存在一个数组中吗?这样,"密钥"自动排序成为增加ID.

所以你早些时候:

var objects = [];

然后在你喜欢的构建功能中

objects.push(new Building(player,bPowPlant,"100"))

然后在对象变量中,您将拥有您创建的所有对象.可由对象[0],对象[1]等访问