javascript - 通过匿名函数进行递归

标签 javascript

听到的是我的代码。我需要在不使用函数名称的情况下完成这项工作。 虽然函数不能命名,但它们可以作为参数传递给另一个函数。

而且我不想使用 arguments.callee。

谁能帮帮我。

其实这是我的任务。我需要在匿名函数中进行递归。而且我不能使用任何函数名称。但我可以将函数名称作为参数传递给另一个函数。 有没有办法替换arguments.callee。

 var n=5; // The result should be 15
  console.log((function sum(n) {
      if (n ==0)
        return n;
      else
        return n + sum(n-1);
    })(n));

最佳答案

您可以将代码包装在一个匿名函数中,您可以在其中声明一个命名函数:

console.log((function(n){

  function fib(n) {
    if (n == 0) {
      return n;
    } else {
      return n + fib(n - 1);
    }
  }

  return fib(n);

})(n));

如果你想完全不使用命名函数,只是通过将函数作为参数传递给函数设置名称,那么你必须在每次调用时发送函数引用:

console.log((function(f, n){

  return f(f, n);

})(function(f, n) {
  if (n == 0) {
    return n;
  } else {
    return n + f(f, n - 1);
  }
}, n));

关于javascript - 通过匿名函数进行递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27473450/

相关文章:

javascript - 动态添加的js对象改变值

javascript - Phonegap/JQueryMobile 应用程序构建丢失样式

javascript - 我需要按标题对 Bootstrap 网格行进行排序

javascript - 在 Storybook 中全局隐藏插件选项卡

javascript - HTML 与 Javascript.. 图像文件路径如何工作?

javascript - 在 Javascript 中自己实现数组对象

javascript - 如何从方法访问构造函数中声明的变量?

javascript - 如何使用 node.js 生成 utc 时间戳

javascript - React useSelector 先返回 undefined,再返回 object

javascript - 在javascript中调用与传递对象