尾调用(Tail Call)
尾调用(Tail Call) 就是指某个函数的最后一步是调用另一个函数。
function f(x){ return g(x); }
尾调用 案例 :【尾递归 】
- 先展示一般递归写法
1 function factorial(n) { 2 if (n === 1) return 1; 3 return n * factorial(n - 1); 4 } 5 6 factorial(4) // 24
- 尾递归写法
1 function factorial(n,total) { 2 if (n === 1) return total; 3 return factorial(n - 1,n*total); 4 } 5 factorial(4,1) // 24
-
ES6 的写法
function factorial(n,total=1) { if (n === 1) return total; return factorial(n - 1,n*total); } factorial(4) // 24