这里我传递了一个回调函数,它可以在运行时调用自身,并在每次调用时打印一个加一的值。我希望它在达到某个值后中断。我该怎么做?
我收到以下错误:
Uncaught SyntaxError: Unexpected token return
<html>
<body>
<script>
function main(callback) {
callback(3);
}
main(function(val) {
console.log(val);
val > 50 ? return false: return true;
arguments.callee(val + 1);
});
</script>
</body>
</html>
最佳答案
您不能在三元运算符中返回
。即使可以,您的递归也不会起作用,因为它始终会在执行 arguments.callee
之前返回。另外,不建议使用arguments.callee,因为它在严格模式下会抛出错误。
function main(callback) {
callback(3);
}
main(function redo(val) {
console.log(val);
if (val > 50) return;
redo(val + 1);
});
关于javascript - 如何打破javascript中的递归回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36341413/