在 Douglas Crockford 的一次演讲中,他赞成使用尾递归而不是循环。提供了此代码,
function repeat(myFunc) {
if (myFunc !== undefined) {
return repeat(myFunc);
}
}
我想定义一个 myFunc,但不知道静态计数器是否可以在函数调用期间保留其状态或使用全局计数器。但作为 javascript 的新手,我想先问一下。如何在示例中使用它,例如从 10 倒数到 0?谢谢。
最佳答案
您需要在某处调用函数myFunc
,并评估结果以进一步调用repeat
。
function repeat(myFunc) {
if (myFunc()) {
repeat(myFunc);
}
}
var count = 10;
repeat(function () {
document.write(count + '<br>');
count--;
return count >= 0;
});
关于Javascript尾递归而不是循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36534992/