Zac*_*ith 1 javascript recursion
我在Javascript中尝试这个递归的事情,并发现数字以错误的顺序打印出来(Desc,而我期待着Asc).为什么会这样,我如何可视化过程?
(function hi(x) {
if (x > 1000) {
return;
} else {
x+=1;
setTimeout(hi(x), 100000);
console.log(x);
}
})(4)
Run Code Online (Sandbox Code Playgroud)
将您的代码更改为:
(function hi(x) {
if (x > 1000) {
return;
} else {
x+=1;
setTimeout(function (){hi(x);}, 100);
console.log(x);
}
})(4)
Run Code Online (Sandbox Code Playgroud)
变化就在这里:
function (){hi(x);}
Run Code Online (Sandbox Code Playgroud)
这个 :
setTimeout(hi(x),
Run Code Online (Sandbox Code Playgroud)
立即调用该函数.你不想那样.
您想要一个在100000毫秒后运行的功能hi(x).