我正在关注pluralsight.com上的javascript视频教程&他们有一个javascript函数,但我不明白他们是如何得到这个结果的:
function factorial(n){
if (n === 0 || n === 1){
return 1;
}
return n * factorial(n-1);
}
console.log( factorial(5) ); // result is 120
任何人都可以解释一下为什么这个功能返回120?我希望它返回5 * 4 = 20? >> JS Fiddle Link
答案 0 :(得分:1)
它是一个递归函数,它自称:return n * factorial(n-1)
。因此,factorial(5)
将4
作为参数调用自身,而factorial(4)
将3
作为参数调用自身,依此类推。