javascript函数输出数学计算

javascript函数输出数学计算,javascript,Javascript,我正在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

我正在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?
这是一个递归函数,它调用自己:
返回n*阶乘(n-1)
。因此,
factorial(5)
4
作为参数调用自身,
factorial(4)
3
作为参数调用自身,依此类推。

查找factorial的含义。它返回
5*factorial(4)
<代码>阶乘(4)返回
4*阶乘(3)
。。。