javascript中stack overflow 怎么解决

liang_sky_fly 2011-05-28 11:18:47
function changeState(agentArray, time)
{

for(var agentIndex in agentArray)
{
var agent = agentArray[agentIndex];
var agentDiv = document.getElementById(agent.id);

if (agentDiv.firstChild != undefined)
{

changeAgentState(agent);

agentDiv.firstChild.src = agent.imageSrc;

}
}

setTimeout(changeState(agentArray, time), time);

}

现在这里报stack overflow 错误!
不知道应该怎么解决!
请各位大侠指点一下!
谢谢了!
...全文
97 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
liang_sky_fly 2011-05-28
  • 打赏
  • 举报
回复
非常感谢!
问题解决了!
xs8577 2011-05-28
  • 打赏
  • 举报
回复
因为你之前的 setTimeout(changeState(agentArray, time), time);
是在setTimeout之前先调用一次changeState() 完了才执行setTimeout, 而你的changeState是递归调用,所以会造成死循环
xs8577 2011-05-28
  • 打赏
  • 举报
回复
setTimeout(changeState(agentArray, time), time);


改成


setTimeout(function(){changeState(agentArray, time)}, time);

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧