Я понимаю логику рекурсии, функция вызывает функцию с базовым аргументом, а затем завершает работу, то, что у меня есть здесь, это код, который регистрирует простую рекурсию, чего я не получаю, это запуск регистрации с достигнутым условием, условие выполнено: 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
, почему он первым зарегистрировал базовый футляр? @vaxquis – learningjavascriptks
потому что 'factorialize (5)' вызывает 'factorialize (4)', который вызывает 'factorialize (3)', который вызывает 'factorialize (2)', который вызывает 'factorialize (1)', который вызывает 'factorialize (0) '? – vaxquis