gpt4 book ai didi

javascript - 递归过多

转载 作者:行者123 更新时间:2023-11-28 11:07:45 25 4
gpt4 key购买 nike

谁能告诉我这个循环是从哪里来的?

JS:

if (zahl > 1) {
document.getElementById('makroclickm2').innerHTML = data_split[zahlm2];
document.getElementById('makroclickm2').onclick = getwords(zahlm2++);
}
else {
document.getElementById('makroclickm2').innerHTML = "";
document.getElementById('makroclickm2').onclick = "";
}

if (zahl > 0) {
document.getElementById('makroclickm1').innerHTML = data_split[zahlm1];
document.getElementById('makroclickm1').onclick = getwords(zahlm1++);
}
else {
document.getElementById('makroclickm1').innerHTML = "";
document.getElementById('makroclickm1').onclick = "";
}

document.getElementById('makroclick').innerHTML = data_split[zahl];
document.getElementById('makroclick').onclick = getwords(zahl++);

document.getElementById('makroclickp1').innerHTML = data_split[zahlp1];
document.getElementById('makroclickp1').onclick = getwords(zahlp1++);
if (typeof(data_split[zahlp1]) == "undefined") {
document.getElementById('makroclickp1').innerHTML = "";
document.getElementById('makroclickp1').onclick = "";
}

document.getElementById('makroclickp2').innerHTML = data_split[zahlp2];
document.getElementById('makroclickp2').onclick = getwords(zahlp2++);
if (typeof(data_split[zahlp2]) == "undefined") {
document.getElementById('makroclickp2').innerHTML = "";
document.getElementById('makroclickp2').onclick = "";
}

HTML:

<div id="makroclickm2" onclick="" class="makroclick"></div>
<div id="makroclickm1" onclick="" class="makroclick"></div>
<div id="makroclick" onclick="getwords(0);" class="makroclick_center"></div>
<div id="makroclickp1" onclick="getwords(1);" class="makroclick"></div>
<div id="makroclickp2" onclick="getwords(2);" class="makroclick"></div>

(不完整代码)该函数在 onload 后被调用。

提前致谢!

最佳答案

在这样的行中:

document.getElementById('makroclickm2').onclick = getwords(zahlm2++);

您将 onclick 处理程序分配给 getwords(zahlm2++)结果,而不是该函数本身。

如果,正如我怀疑的那样,上面的代码实际上是 getwords 函数,这意味着它正在调用自身(递归地)。

相反,写:

document.getElementById('makroclickm2').onclick = function() {
getwords(zahlm2++);
}

关于javascript - 递归过多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5627044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com