首页 > 其他 > 详细

尾调用 && 尾递归

时间:2020-03-24 17:44:35      阅读:53      评论:0      收藏:0      [点我收藏+]

某个函数的最后一步是调用另一个函数

function f(x){
  return g(x);
}
函数f的最后一步是调用函数g,这就叫尾调用。

以下三种情况,都不属于尾调用

// 情况一
function f(x){
  let y = g(x);
  return y;
}

// 情况二
function f(x){
  return g(x) + 1;
}

// 情况三
function f(x){
  g(x);
}

尾调用不一定出现在函数尾部,只要是最后一步操作即可

function f(x) {
  if (x > 0) {
    return m(x)
  }
  return n(x);
}函数mn都属于尾调用,因为它们都是函数f的最后一步操作。

尾递归

函数调用自身,称为递归。如果尾调用自身,就称为尾递归

function factorial(n, total) {
  if (n === 1) return total;
  return factorial(n - 1, n * total);
}

factorial(5, 1) // 120

  

 

尾调用 && 尾递归

原文:https://www.cnblogs.com/blogZhao/p/12559556.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!