es6尾调用优化

2021-09-25  本文已影响0人  9月的甜橙子

es6 严格模式下(非严格模式不受影响),满足一下三个条件,尾调用不再创建新的stack frame ,而是重用当前 stack frame

举例:阶乘

// 优化前
function factorial(n){
if(n<=1){return 1;}
else{return n* factorial(n-1)}
}
// 优化后
function factorial(n,p=1){
if(n<=1){return 1*p;}
else{
let res = n*p
return factorial(n-1,res)}
}

如果本文对您有帮助,请给我点赞哦~ 谢谢~

上一篇下一篇

猜你喜欢

热点阅读