在javascript中递归主要用到arguments对象的callee方法。arguments对象是javascript的内置对象,所有的javascript函数都有属于自己的一个arguments对象,该对象代表正在执行的函数和调用它的函数的参数。可以通过arguments.length获取函数的参数个数,arguments[index]获取函数参数的值,arguments.callee(参数)执行当前函数对象。虽然可以通过length和下表访问该对象的值,但是agruments不是个数组。
/**
**javascript中阶乘的递归写法
**/
function factorial(n){
if(n==0)
return 1;
else
return n * factorial.arguments.callee(n-1);
}
/**
**javascript中阶乘的非递归写法
**/
function factorial(n){
var result=1;
while(n>1){
result * =n;
n--;
}
return result;
}