请帮助我了解此递归函数...

var stack = Array;
function power(base, exponent){
    if ( exponent === 0 ) {
        return 1;
    } else {
        stack[exponent-1] = base * power(base, exponent - 1);
        return stack[exponent-1];
    }
}


我不明白
stack[exponent-1]
在做什么

最佳答案

我使用以下命令完成了stack [exponent-1]的控制台日志

var stack = Array;
function power(base, exponent){
    if ( exponent === 0 ) {
        return 1;
    } else {
        stack[exponent-1] = base * power(base, exponent - 1);
        console.log(stack[exponent-1]);return stack[exponent-1];
    }
}


O / P:

power(2,5)
2
4
8
16
32


因此,函数类递归直到指数变为0(第n次调用),然后它将开始返回结果

first it will return 1     (because exponent is 0)
        then returns 2 * 1 (return of n call)
              then   2 * 2 (return of n-1 call)
              then   2 * 4 (return of n-2 call) and so on

关于javascript - JavaScript中的递归函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9992177/

10-09 22:25