Я пытаюсь изучить рекурсию в Javascript и написал это, чтобы проследить простую рекурсивную функцию.Что это за рекурсивная функция?
function count(num){
console.log(num + " top");
if (num===5)
return console.log("It has ended.");
count(num+1);
console.log(num + " bottom");
}
count(1);
Вот результат:
1 верхняя
2 верхняя
3 верхняя
4 сверху
5 сверху
Это закончилось.
4 снизу
3 снизу
2 снизу
1 снизу
Так что здесь происходит? Что-то не так с моим базовым условием? Является ли журнал показом того, что надел и снял стек? Я бы ожидал, что функция остановится на «Это закончилось», и я не уверен, почему это не так.
Спасибо.
Эта функция называется несколько раз ... Она останавливается только один раз на «Это закончилось», но четыре раза это не так. – Bergi
Возможно, это поможет: [Понимание того, как работают рекурсивные функции] (http://stackoverflow.com/q/25676961/1492578) –
Думаю, мне, возможно, потребуется это прочитать. Рекурсия заставляет мою голову болеть, и я в основном думаю, что это волшебство. – Andy