是否可以创建循环但不使用内置的Javascript循环,比如while,for和do?另外我想避免递归以节省内存。
我想它会涉及巧妙地调用一个函数,让它退出然后再次调用它直到满足条件。
编辑:添加了示例
var i = 0;
var condition = false;
function loop() {
i++;
if (i >= 3) {
condition = true;
}
}
loop(); //somehow keep calling until condition is met.
答案 0 :(得分:1)
以下是使用递归计时器函数重复某些代码的方法:
(function repeat(n){
if (!n) return;
console.log("do something");
setTimeout(repeat, 0, n-1);
})(4);
与(非尾部优化)递归相反,此处没有累积内存消耗。
在某些情况下,这种结构很有用。但是,仅仅避开for
和while
关键字并不会成为其中之一。