目前正在学习JS。
无法找出在递归过程中以某种方式修改的“ prev1”参数中的哪一点?
如果每次迭代中的“ console.log(prev1)”实际上都被修改,尽管在下面的代码中似乎都没有更改此参数。
拜托,帮我理解这件事。
function fibonacci(n, prev1, prev2){
//console.log(prev1);
var current = prev1 + prev2;
var fibonacci_string = current + " ";
if(n > 1)
fibonacci_string += fibonacci(n - 1, current, prev1);
return fibonacci_string;
}
console.log(fibonacci(10, 1, 0));
console.log(prev1):
1
1
2
3
5
8
13
21
34
55
最佳答案
如果您查看递归调用:
fibonacci(n - 1, current, prev1)
// calls: ⬇️ ⬇️ ⬇️
function fibonacci(n, prev1, prev2)
您可以看到
prev1
获得了前一个current
的值。