Как «работает» ли рекурсивная функция Фибоначчи?

Я новичок в Javascript и читал его, когда дошел до главы, описывающей рекурсию функций. В ней использовался пример функции, чтобы найти n-е число последовательности Фибоначчи. Код выглядит следующим образом:

function fibonacci(n) {
   if (n < 2){
     return 1;
   }else{
     return fibonacci(n-2) + fibonacci(n-1);
   }
}

console.log(fibonacci(7));
//Returns 21

Мне трудно понять, что именно делает эта функция. Может кто-нибудь объяснить, что здесь происходит? Я застреваю на 5-й строке, где функция вызывает сама себя. Что здесь происходит?

59
задан Cœur 2 January 2019 в 01:56
поделиться