javascript - 如何打破javascript中的递归回调函数

标签 javascript

这里我传递了一个回调函数,它可以在运行时调用自身,并在每次调用时打印一个加一的值。我希望它在达到某个值后中断。我该怎么做?

我收到以下错误:

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/

相关文章:

javascript - 从 iframe 打开 JQuery UI 对话框,以便当 iframe 来自不同域时它位于顶部窗口

javascript - 根据其顶点之一的位置调整 div 的大小

javascript - 隐藏具有相同类的所有特定 div 的 Angular 方式是什么

javascript - 单击行时更改引导行中的字形

javascript - 正则表达式无法正常工作

javascript - React JSX 中的 ...rest 是什么意思?

javascript - Sencha touch - 如何运行生产构建?

javascript - 使用异步存储的正确/正确方法是什么?

javascript - 如何使用 LiveAddress jquery 插件验证默认值?

javascript - 无法加载资源:net::ERR_SSL_BAD_RECORD_MAC_ALERT ajax 文件上传