【发布时间】:2015-12-29 19:58:56
【问题描述】:
我尝试制作一个小游戏,但如果我启动它,它会显示:Uncaught RangeError: Maximum call stack size exceeded" 我的代码有什么问题? ;-)
function move(top,left){
y_ball = $('#ball').offset().top - $('#spielfeld').offset().top;
x_ball = $('#ball').offset().left - $('#spielfeld').offset().left;
x_balken = $('#balken').offset().left - $('#spielfeld').offset().left;
ball = document.getElementById('ball');
balken = document.getElementById('balken');
if(y_ball >= 0 && y_ball < 465 && x_ball >= 0 && x_ball <= 500){
ball.style.top = y_ball + top + "px";
ball.style.left = x_ball + left + "px";
setTimeout(move, 20 , top, left);
return false;
}
if(y_ball == 0 || x_ball == 0 || x_ball == 500 || y_ball > 465){
top = - top;
left= - left;
move(top,left);
return false;
}
if(y_ball >= 465){
if(-19 < x_ball - x_balken < 59){
top = - top;
left= - left;
move(top,left);
}
}
}
【问题讨论】:
-
好吧..看起来你总是在那个函数中再次调用 move ,最终超过调用堆栈上的最大调用次数。
-
最好是做一些调试,看看代码运行时会发生什么。 :)
标签: javascript stack size max call