预解析

预解析:预先解析一些东西;
    变量的定义会提前到我们能理解的最前面;
    预解析的作用范围: 会找本作用域内;
    函数的也会预解析;
    
              1.     function show(a){
                           alert(a);  //function()
                           var s=a();  //弹a, s为undefined(函数a()没有返回值);
                           return function(){
                               alert(s);}    //undefined
                            }
                           function a(){
                               alert('a');
                            }
                            show(a)//执行到return,结果function,弹a
                            alert(show(a));//结果function,弹a,return后面function
                            show(a)()//执行return函数,结果function,弹a ,undefined
                            alert(show(a)());//执行return函数返回值,结果function,弹a ,undefined,undefined                

          

     2.  function step(a){
                        return function(x){

                              return x + a++;}
                        }
                        var a = step(10);
                        var b = step(20);
                        alert(a(12));//a(10)(12),22
                        alert(b(12));//b(20)(12),32

 

posted @ 2016-07-23 10:28  河南小样  阅读(166)  评论(0编辑  收藏  举报