首页 > 解决方案 > n 的值如何在递归中减小

问题描述

对于下面的递归函数

function pow(x, n) {
  if (n == 1) {
    return x;
  } else {
    return x * pow(x, n - 1);
  }
}

JS编译器如何确定递归减小n的值?我不会像 n-- 那样减少值;仍然如何在每次调用中自动减少值?

标签: javascript

解决方案


n--等于n = n - 1whilen - 1不做任何事情,除非您将其分配给变量。

在这种情况下,您调用pow函数n - 1意味着您n - 1在每次调用中分配了函数的第二个参数。

pow(4, 4(this is n)) => pow(4, 3(this is n) => pow(4, 2(this is n) => pow(4, 1(this is n)

推荐阅读