javascript中这个递归是怎麼算的,不能理解里面的逻辑,期待大家的帮助!

来源:百度知道 编辑:UC知道 时间:2024/06/07 18:25:10
var sum=function(n){
if(1==n)return 1;
else return n+sum(n-1); //这句是循环吗?
}
alert(sum(100));

不是循环是递归!
现在你传递100进去,因为1==100不成立,执行else语句
return 100 + sum(99)类推
return 100+99+sum(98);
.......
return 100+99+...+2+sum(1);
return 100+99+...+2+1;

翻译成普通的js是这样:

function sum(n){
if(1==n)return 1;
else return n+sum(n-1); //这句当然是递归,在自己的方法体里调用自己
}

是啊。
方法也是一个对象就是了。

1+dao 100