递归函数

//递归函数:可以理解为函数内部调用自身使用。

//调用方法有两种,第一种直接使用自身的函数名,第二种使用arguments.callee,arguments.callee是一个指向正在执行的函数的指针



function factorial(num) {

    //不推荐使用,factorial变了的时候,里面的也得变

    if (num <= 1) {

        return 1;

    } else {

        return num * factorial(num-1);

    }

}

//使用arguments.callee不会出现这种问题

var anotherFactorial = factorial;

factorial = null;

alert(anotherFactorial(4));//error 



function factorial2(num) {

    if (num <= 1) {

        return 1;

    } else {

        return num * arguments.callee(num-1);

    }

}

 

你可能感兴趣的:(递归)