В каждой рекурсии функция вызывается на 1 меньше, чем первоначально пройденный показатель степени.
pow(base, exponent-1)
, по сути, с обратным отсчетом от своего начального значения до 1, и в этот момент она удовлетворяет условию, когда прекращает рекурсиюи возвращает только базу.
if (exponent <= 1){
return base
}
, поэтому, если вы передадите pow (3, 4),
рекурсия 1 (pow(3,4)
): 3 * // 3
рекурсия 2 (pow(3,3)
): 3 * // 9
рекурсия 3 (pow(3,2)
): 3 * // 27
рекурсия 4 (pow(3,1)
): 3 = // 81