функция вызывает себя же.
матрёшка.
pow(x, n) - вызываем
pow(x, n-1) - вызываем
pow(x, n-2) - вызываем
и так пока n не не достигнет 1.
Вы вызвали функцию. Эта функция в свою очередь вызывает себя же, но степень уже на 1 меньше, и так далее.
Функция вызывается в функции, которая вызывается в функции.
Ещё раз.
2 в кубе - это 2*(2*2)
2 в четвёртой - это 2*(2*(2*2))
function pow(x, n) {
return x нужно перемножить n раз
}
Вот как отработает функция.
pow(2, 5) = 2 * (pow(2, 4)) = 2 * (2 * pow(2, 3)) = 2 * (2 * (2 * pow(2, 2))) = 2 * (2 * (2 * (2 * pow(2, 1))))
можно это делать в цикле
function pow(x, n) {
var result = 1;
for (var i = n; i >= 1; i--) {
result *= x;
}
return result
}