我明白超出的最大调用堆栈是多少。但是,对于我的代码是否有解决方法?此外,还有一段时间它最终会停止循环,也就是当位置> counter1时。超过最大调用堆栈
var a = 0;
var b = 1;
var c;
var counter1 = 1;
var position = 0;
window.onload = function() {
var position = prompt("Please enter the position number.","0");
calc1();
}
function calc1() {
if(position <= counter1) {
c = a+b;
counter1++;
calc2();
}
else {
callResult();
}
}
function calc2() {
if(position <= counter1) {
a = b+c;
counter1++;
calc3();
}
else {
callResult();
}
}
function calc3() {
if(position <= counter1) {
b = c+a;
counter1++;
calc1();
}
else {
callResult();
}
}
function callResult() {
if (position %3 == 1) {
document.getElementById("answer").innerHTML = a;
}
else if (position %3 == 2) {
document.getElementById("answer").innerHTML = b;
}
else {
document.getElementById("answer").innerHTML = c;
}
}
你怎么* *永远弄不清代码流,如果这是你如何缩进代码? – h2ooooooo
这不是我通常的缩进方式。它通常是4个空格,然后下一个缩进是一个制表符。但是对于这个网站,你需要有4个空格来显示它的代码,所以我尽量减少浪费的时间,以便我可以快速得到答案。但是,如果它影响到人们,我现在就改变它 –
因此,当位置<= counter1时增加counter1,但从不改变位置,所以计数器变得越来越大,从而保持调用calc1 - > calc2 - > calc3 - > calc1?等... – doctorlove