请有人告诉我这里的结果如何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
答案 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));