第七章 函数表达式

函数定义的两种方式:函数声明和函数表达式

两者区别:函数声明特征是函数声明提升,即在执行代码前会先读函数声明;函数表达式则不会。

            sayHi();
            function sayHi(){
                alert("Hi!");
            }

            sayHello(); /*error*/
            var sayHello = function(){
                alert("Hello");
            }

7.1 递归

递归的三种方式:

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

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

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

7.2 闭包:有权访问另一个函数作用域中变量的函数

 

posted @ 2016-01-10 17:49  小-黑  阅读(77)  评论(0)    收藏  举报