1. function getFactorial(num) {
2. console.log(num)
3. if (num <= 1) {
4. return
5. } else {
6. getFactorial(num - 1)
7. console.log(num)
8. return
9. }
10. }
11.
12. getFactorial(4)
Что такое стек знаете? В рекурсии вызовы будут в виде стека, последним пришел - первым вышел.
1. Вызов getFactorial(4), отработает строка 2, покажет '4'
2. На строке 6 вызов getFactorial(3), отработает строка 2, покажет '3'
3. На строке 6 вызов getFactorial(2), отработает строка 2, покажет '2'
4. На строке 6 вызов getFactorial(1), отработает строка 2, покажет '1'
5. Выход из функции getFactorial(1), отработает строка 4
6. Продолжится выполнение функции getFactorial(2), отработает строка 7, покажет '2'
7. Выход из функции getFactorial(2), отработает строка 8
8. Продолжится выполнение функции getFactorial(3), отработает строка 7, покажет '3'
9. Выход из функции getFactorial(3), отработает строка 8
10. Продолжится выполнение функции getFactorial(4), отработает строка 7, покажет '4'
11. Выход из функции getFactorial(4), отработает строка 8