这如何在递归中变成数字? Javascript
How does this turn into a number in the recursion ? Javascript
我刚刚在看一本书,上面提到了递归,但我有点困惑。
我知道它在做什么,但只是其中的一部分我不明白它是如何完成的。
function power(base, exponent) {
if (exponent == 0)
return 1;
else
return base * power(base, exponent - 1);
}
console.log(power(2, 3));
else语句里面的power(base, exponent - 1)
,这个怎么变成一个数,然后base
就可以乘了?
P.S。对不起大家,我只是意识到我的标题可能与我想问的有点不同,即使给出了答案。我只是不确定这个递归是如何工作的,因为我一直在想 base * power(base, exponent - 1)
是如何工作的,因为对于第一个循环,它会是 2* power(2, 3 - 1)
之类的东西,而 power(2, 3 - 1)
不是一个数字。基数如何乘以它,但答案再次向我展示了我只是没有正确地看到它。
else 语句中的 power(base, exponent - 1)
return 是函数的结果,它是一个数字。
针对 power(2, 3)
的详细说明
这将 return 2*(2*(2*(1))) = 8
2 * (power(2,2))
2 * (2 * (power(2,1)))
2 * (2 * (2 * (power(2,0))))
2 * (2 * (2 * (1)))
我刚刚在看一本书,上面提到了递归,但我有点困惑。
我知道它在做什么,但只是其中的一部分我不明白它是如何完成的。
function power(base, exponent) {
if (exponent == 0)
return 1;
else
return base * power(base, exponent - 1);
}
console.log(power(2, 3));
else语句里面的power(base, exponent - 1)
,这个怎么变成一个数,然后base
就可以乘了?
P.S。对不起大家,我只是意识到我的标题可能与我想问的有点不同,即使给出了答案。我只是不确定这个递归是如何工作的,因为我一直在想 base * power(base, exponent - 1)
是如何工作的,因为对于第一个循环,它会是 2* power(2, 3 - 1)
之类的东西,而 power(2, 3 - 1)
不是一个数字。基数如何乘以它,但答案再次向我展示了我只是没有正确地看到它。
else 语句中的 power(base, exponent - 1)
return 是函数的结果,它是一个数字。
针对 power(2, 3)
这将 return 2*(2*(2*(1))) = 8
2 * (power(2,2))
2 * (2 * (power(2,1)))
2 * (2 * (2 * (power(2,0))))
2 * (2 * (2 * (1)))