Как это работает (алгоритм с использованием рекурсии для вычисление числа Фибоначчи)?
Во время выполнения кода в оперативной памяти создается вспомогательная структура называемая стеком. Она работает по принципу LIFO - последний вошел - первый вышел. Когда вы вызываете функцию некоторые ее данные добавляются в стек - аргументы, расположение в памяти, адрес возврата (вообще эти данные зависят от реализации).
То есть когда вы вызвали getFibonachi(8) в стеке создалась запись о этом вызове. При этом n == 8. То есть мы попадаем в else и вызываем getFibonachi(7). Теперь стек имеет запись о двух функциях. И т.д. До тех пор пока n == 1. Тогда функция вернет 1. Эта последняя функция удаляется из стека. То есть на этом этапе стек содержит функции:
getFibonachi(2)
getFibonachi(3)
getFibonachi(4)
getFibonachi(5)
getFibonachi(6)
getFibonachi(7)
getFibonachi(8)
Мы возвращаемя к выполнению функции вызванной с аргументом 2. В этот момент мы рассчитывали функцию getFibonachi(1) (она была успешно вычислена и вернула 1) и теперь переходим к второму слагаемому. getFibonachi(0) (т.к n==2). Она возвращает 0. Теперь мы можем вычислить функцию getFibonachi(2), потому что мы уже получили значения от двух функций, которые были вызваны в блоке else. getFibonachi(2) вернет 1 (1+0=1) и удалится из стека. Теперь он выглядит так:
getFibonachi(3)
getFibonachi(4)
getFibonachi(5)
getFibonachi(6)
getFibonachi(7)
getFibonachi(8)
Продолжаем выполнение функции с вершины стека. И так далее пока все функции не вернут значения)) Более подробно гуглите: стек вызовов функции. Немного криво, но как смог.Можете использовать дебаггер js в браузере. Чтобы визуализировать работу стека.
Числа Фибоначчи – это последовательность, начиная с 0 и 1, где каждый следующий равен сумме двух предыдущих. 
Третий равен 0 + 1 = 1 // итого первые три ряда: 0 1 1
Четвёртый это сумма последних двух единиц = 2 // 0 1 1 2
Пятый это 1 + 2 = 3 // 0 1 1 2 3
И так далее. Вот начало ряда: значение:         0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144
порядковый номер: 0  1  2  3  4  5  6   7   8   9  10  11  12 Восьмой, если считать с 0, равен 21.
Параметром в функцию getFibonachi() передаётся не значение, а порядковый номер элемента ряда Фибоначчи, а функция должна вернуть значение.
Чтобы вычислить очередное значение, надо знать два предыдущих.  Отсюда и (n-1) и (n-2)
Поскольку любой элемент ряда считается одинаково, пишут всего одну функцию. Она сразу готова дать ответ для первых двух элементов, если n = 0 или 1. В остальных случаях ей придётся вызывать саму себя.
Движок JavaScript'а сам позаботится о хранении промежуточных значений и цепочки кто-кого вызвал и с каким параметром.