【发布时间】:2018-01-10 22:53:27
【问题描述】:
你能解释一下为什么这段代码会返回
'xxxcba'
而我只有return 'xxx'; 命令?
function reverseString(str) {
if (str === '')
return 'xxx';
else
return reverseString(str.substr(1)) + str.charAt(0);
}
console.log(reverseString('abc'));
【问题讨论】:
-
因为你建立了一个堆栈,在你达到基本条件后解决。这意味着对于每个函数调用,您都会获得基本返回值加上在相应调用中添加的返回值。只需 google 递归,您就会发现许多网站解释了您尚未完全理解的概念!
-
I only have the return 'xxx';- 不,你没有......你也有return reverseString(str.substr(1)) + str.charAt(0);- 显然你不了解自己的代码
标签: javascript recursion return