javascript中的setTimeOut方法参数中调用的方法中的参数是个对象数组,
第一次调用执行时对象数组中的元素可以找到。
但是当定时器的时间到了时,定时器第一次调用执行时那个对象数组中的元素就找不到了?
不知道是怎么回事!
请各位前辈们指点一下!
谢谢了!

解决方案 »

  1.   

        function changeState(agentArray, time)
        {
     alert("begin");
     
     for(var agentIndex in agentArray)
     {
         var agent = agentArray[agentIndex];  
     var agentDiv = document.getElementById(agent.id);
     
     if (agentDiv.firstChild != undefined)
     {
         //var imageSrc = agentDiv.firstChile.src;
                     //var statu = getStatus(imageSrc);
     
     alert(agent.status);
     
         changeAgentState(agent);
     
     alert(agent.status);
     
     agentDiv.firstChild.src = agent.imageSrc;
     
     }
     }
     
     alert("end");
     
     for (var index in agentArray)
     {
         alert(agentArray[index].id);
     alert(agentArray[index].status);
     }
     
     setTimeout("changeState('"+ agentArray +"',"+ time +")", time);    }
      

  2.   

    就是下面这段代码中的
    setTimeout("changeState('"+ agentArray +"',"+ time +")", time);
    agentArray数组在下一次定时器执行的时候数组中的元素就丢失了!
      

  3.   

    你传的是字符串吧?
    setTimeout("changeState('"+ agentArray +"',"+ time +")", time);
    你已经用单引号把数组包起来了
      

  4.   

    是的现在解决了,谢谢楼主!
    修改成以下方式setTimeout(changeState(agentArray, time), time);就正常了!