这是一个使用递归方式的基本指数函数。我确实理解递归是如何工作的,但我很难看到它如何通过返回函数本身返回基数
function exponent(b,n){
if(n == 0){
return 1;
}else if(n == 1){
return b;
}
return exponent(b,n-1);
// return b*exponent(b,n-1);
}
console.log(exponent(7,2)); //7
我评论了实际输出,因为我试图了解exponent(b,n-1)
的含义,我真的不明白返回exponent(b,n-1)
将如何给出基数作为结果?< / p>
答案 0 :(得分:2)
递归是函数调用自身的过程。
开头的特殊条件n == 0
和n == 1
打破了无限的自我调用链,因此一旦n
缩减为1
或0
,该函数停止调用自身。
因此,对于exponent(7,2)
,它是:
如果我们将结果合并为exponent(7,2) = 7*exponent(7,1) = 7*7 = 49
。