我明白超出的最大調用堆棧是多少。但是,對於我的代碼是否有解決方法?此外,還有一段時間它最終會停止循環,也就是當位置> 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