【发布时间】:2017-01-22 00:00:37
【问题描述】:
我已经查看了论坛,我看到了一些标题相似但没有回答我问题的论坛。我注意到如果我创建一个递归函数,return 语句会在它看起来像的终止语句之后返回。有人可以向我解释这是如何工作的吗?谢谢
function recur(n=10){
if(n===0){
return "";
}
console.log(n);
return "A" + recur(n-1);
}
recur()
最终结果是:
10
9
8
7
6
5
4
3
2
1
"AAAAAAAAAA"
我希望它为函数的每个实例返回 A,因为我认为函数定义中的每个语句都会为函数的每个实例调用,如下所示:
10
"A"
9
"A"
8
"A"
7
"A"
6
"A"
5
"A"
4
"A"
3
"A"
2
"A"
1
"A"
所以重申一下为什么函数没有像我预期的那样返回 A,我误解了函数的运行模式是什么?
【问题讨论】:
标签: javascript recursion