为什么返回一个函数而不是再次运行该函数(递归)?

时间:2018-05-17 06:10:39

标签: javascript function recursion

如果我想在满足某个条件时在同一个函数内再次运行我的函数,那么返回该函数VS再次调用该函数之间的区别是什么。

function myFunc(param) {
  if (param === "3") {
     return myFunc(param);
  }
}

VS

function myFunc(param) {
  if (param === "3") {
     myFunc(param);
  }
} 

2 个答案:

答案 0 :(得分:1)

如果需要返回结果,则需要递归return内部调用的结果。例如:



function fact(n) {
  if (n === 0) return 1;
  return n * fact(n - 1);
}
console.log(fact(5));




但是如果递归函数只在函数中完成所需的内容 - 它来自内部的所有副作用 - 那么就不需要{{1} }:



return




答案 1 :(得分:1)

return myFunc()做了三件事:(1)执行函数myFunc(),(2)当1结束时,取结果值并将其指定为当前函数的返回值,(3) )终止当前的功能。

仅调用myFunc()执行(1)。差别就是这样。