使用arguments对象实现递归

在将参数传递给某个函数时,可以使用arguments对象来访问有关传递给该函数的参数的信息。arguments对象包括一个传递给函数所有参数的数组,arguments.length属性报告传递给函数的参数数量。arguments.callee属性提供对函数本身的引用,该引用可用于递归调用函数表达式。

看下面代码:

package { 
    import flash.display.Sprite; 
    public class ArgumentsExample extends Sprite { 
        public function ArgumentsExample() { 
            trace(factorial(5)); 
            //输出: 
            //120 
        } 
        private function factorial(x:uint):int { 
            if (x == 0) { 
                return 1; 
            } else { 
                return (x * arguments.callee(x - 1)); 
            } 
        } 
    } 
}

发表评论