javascript函数递归实现

    xiaoxiao2022-07-07  187

    在非严格模式下:

    主要通过arguments.callee实现递归,它是一个指向正在执行的函数的指针。

    function factorial(num){ if(num <= 1){ return 1; }else{ return num * arguments.callee(num - 1); } }

    在严格模式下:

    虽然访问arguments.callee这个属性会导致错误,但是可以使用函数表达式来达成相同的结果。

     

    var factorial = function f(num){ if(num <= 1){ return 1; }else{ return num * f(num-1); } };

    本篇博客参考自JavaScript高级程序设计,[p177-p178]

    最新回复(0)