【发布时间】:2013-07-16 13:30:17
【问题描述】:
有人能解释一下这个递归函数是如何产生 5 * 4 * 3 * 2 * 1 来得到 120 的吗?
var factorial = function(n){
if (n === 0)
return 1;
else
return n * factorial(n - 1);
};
factorial(5); // spits out 120
如果我们像示例中那样使用 5,一旦我们到达 else 语句就不会
return n * factorial(n - 1);
翻译成'返回5乘以阶乘函数(5-1); 5次...
【问题讨论】:
-
尝试在调试器中单步执行。
-
不清楚你在问什么。你只是问递归是如何工作的?你最好看维基百科或教科书,而不是这个网站。
-
如果你尝试
factorial(-1),你会更好地意识到循环? -
我意识到我的回答从未真正回答过你标题中的问题,所以我更新了它。
标签: javascript loops recursion