繁体   English   中英

谁能解释以下递归 function 的工作原理?

[英]Can anyone explain the working of the following recursive function?

我想知道下面的代码是从 10 到 1 的返回数字,但是在这样做之后它再次调用自己 10 次但什么也没做。 我试图在调试器变量的帮助下逐步理解代码,但无法理解。

 let countDown = function f(fromNumber) { console.log(fromNumber); let nextNumber = fromNumber - 1; if (nextNumber > 0) { f(nextNumber); } } let newYearCountDown = countDown; countDown = null; newYearCountDown(10);

如需更多参考,请访问Javascripttutorial以了解有关代码的更多信息。

Recursion是一个调用自身的过程。 调用自身的 function 称为递归 function。 在您的示例中,您的第一个 function 没有完成,但if是正在运行的内容。 if条件下,您的 function 更像是在拨打另一个电话时暂停。 您的第一个 function 等待它完成。

以这种方式,进行了 10 个 function 调用,并且所有调用都在if条件内等待。 在最后一个条件 (nextNumber == 0) 失败后,function 返回到第 9 个 function,此时if条件正在等待。 同样的,你所有的功能都会从9点到1点一一完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM