javascript从内部使用参数调用函数表达式本身

时间:2020-02-20 04:20:40

标签: javascript function math

请有人告诉我这里的结果如何384。 据我说: 调用的函数值大于2,所以结果应该是 8 * fac(8-2) 64-2 回答:62 我了解“ fac”正在发生的事情,请解释。

let factoria = function fac(n){
    return n < 2 ? 1 : n * fac(n - 2);
}

console.log(factoria(8));
// result 384

1 个答案:

答案 0 :(得分:0)

此行n * fac(n - 2)以新值递归调用自身。首先,它将以8 * fac(8 - 2)进行调用,因此现在fac将以6再次调用,然后以4再次调用,依此类推

let factoria = function fac(n) {
  console.log(n)
  return n < 2 ? 1 : n * fac(n - 2); // recursive function 
}

console.log(factoria(8));