递归函数是调用自身的函数。以下代码显示了一个简单的递归示例。

功能问题(){
麻烦();
}

像上面的递归功能无条件地称为自身,导致无限递归。为了防止这种情况发生,实际递归函数仅在满足给定的条件时呼叫自己。

这里,要比较递归函数和普通循环函数的使用,我将使用一个简单的例子来计算数字的数学阶乘。

方法1 - 使用递归方式

功能因子(n){
if(n <0){返回;} else {return n * arberial(n-1);}}

方法2 - 使用没有递归的循环

功能因子(n){
if(n <0){返回;}否则{var结果= 1;for(var i = 1; i <= n; i ++){结果=结果* i;返回结果;}}

功能递归被认为优雅的因为它提供了一个简单的解决方案 - 反复调用相同的功能 - 以解决一个复杂的问题。然而,重复的函数调用比循环迭代效率低。计算因子的非递归方法是比递归方法更有效的次数,这也提供了Flash运行时的最大递归限制(默认值1000),但可以通过编译器参数默认脚本限制设置。

来自个人象征,我更喜欢循环迭代而不是递归。

传播爱心