JavaScript函数表达式——递归

递归

递归函数是在一个函数通过名字调用自身的情况下构成的。

        function factorial(num) {
            if(num<=1){
                return 1;
            }else{
                return num*factorial(num-1);
            }
        }
        var anotherFactorial = factorial;
        factorial = null;
        alert(anotherFactorial(4));//error

使用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)
            }
        });

推荐阅读更多精彩内容

  • 定义函数的方式有两种:一是函数声明,另一种是函数表达式。 1、函数声明语法 函数声明有一个重要特征是函数声明提升,...
    shanruopeng阅读 114评论 0 1
  • 定义函数的方式有两种:函数声明和函数表达式。 函数声明的一个重要特征就是函数声明提升,意思是在执行代码前会先读取函...
    oWSQo阅读 116评论 0 0
  • 函数表达式的特征使用函数表达式递归使用闭包定义私有变量 定义函数的方式有两种:函数声明,类似变量声明用var,函数...
    王海洋_前端阅读 50评论 0 0
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    千机楼阅读 1,030评论 0 4
  • 你有freestyle吗? 没有?那真巧,小美我也没有... 但...
    天天杨言阅读 48评论 1 0