为什么这会在Javascript中以无限循环结束?

为什么这会在Javascript中以无限循环结束?,javascript,infinite-loop,Javascript,Infinite Loop,我正在为HTML5的游戏果酱制作一个tower desence游戏。我有一个塔楼AI的子程序。然而,由于某种原因,这个没有循环的函数调用最终会进入无限循环。只有当至少有两座塔时才会发生这种情况 function aiTower(id){ if(id === 1)alert("towerId = 1 call 1"); var l = zamerajCiel(id); if (l !== null) towers[id].shoot(l.x,l.y); if(id

我正在为HTML5的游戏果酱制作一个tower desence游戏。我有一个塔楼AI的子程序。然而,由于某种原因,这个没有循环的函数调用最终会进入无限循环。只有当至少有两座塔时才会发生这种情况

function aiTower(id){
    if(id === 1)alert("towerId = 1 call 1");
    var l = zamerajCiel(id);
    if (l !==  null) towers[id].shoot(l.x,l.y);
    if(id === 1)alert("towerId = 1 call 2");
};
调用它的循环:

function aiLoop(){
    for(i=0;i<enemies.length;i++){
        aiMon(i);
    }
    for(i=0;i<towers.length;i++){
        aiTower(i);
            if(i === 1)alert("towerId = 1 call 3");
    }
}
函数aiLoop(){

对于(i=0;i通过提供
var i
使
i
成为函数的局部。很可能您会在其他地方修改它。

我想我们也需要
.shoot
zamerajCiel'的代码。只是一个建议:使用
console.log('msg u-want-see')`,如果您使用firebug,它将是一个非常好的日志记录工具。