
尾递归:
1 |
function f(a){ if(a == 1) return a return a + f(a-1) } |
每次递归有一个变量a在内存中
应该每次更新这个a,而不是在内存中,扩展更多的a
1, 递归转化为循环迭代
1 |
function f(a){ var result =0 while(true){ if(a==0) break; result = result + a a = a - 1 } reutrn result } |
2, 尾递归优化
1 |
function f(a, b=0){ if(a==0) return b return f(a-1, a+b) } |
return 只返回一个纯函数,这就是尾递归优化




近期评论