【发布时间】:2016-12-21 04:03:47
【问题描述】:
我理解递归的逻辑,一个函数调用一个带有基本情况的函数然后终止,我这里有一个记录简单递归的代码,我没有得到它是在达到条件时开始记录,条件满足: 0?
function factorialize(num) {
if(num === 0){
console.log('condition met: '+num);
return 1;
}
var x = factorialize(num-1); // iterate
var toReturn = num*x;
console.log("Current call: num = " + num
+ " x = " + x
+ "\n"
+ "Returning " + toReturn
);
return toReturn;
}
factorialize(5);
我希望这段代码首先记录输出,最后达到条件?
输出和demo
【问题讨论】:
-
要了解递归,首先要了解递归 咯咯笑
-
为什么先记录基本情况? @vaxquis
-
因为
factorialize(5)调用factorialize(4),它调用factorialize(3),它调用factorialize(2),它调用factorialize(1),它调用factorialize(0)? -
您应该能够在纸上“执行”此代码以了解其工作原理。执行首先命中
console.log。 -
@vaxquis 知道了,有没有办法可以在调试器上查看调用堆栈或如何记录它们?
标签: recursion