日期:2014-5-17 浏览次数:20085次

函数毕包问题请教~~~
JScript code

function  myFunction1(){
   var str='Hi~~';
  
    function myFunction2(){
        return str;
    }
    return myFunction2;
}
    
    var run=myFunction1();
    var str2=run();
    alert(str2);




JScript code

function  myFunction1(){
   var str='Hi~~';
  
    function myFunction2(){
        return str;
    }
    return myFunction2();
}
    
    var run=myFunction1();
    alert(run);




请教一下,为什么第一个只return myFunction2了,然后var run=myFunction1();var str2=run();alert(str2);这样折腾一下就可以获得变量了呢?小白请教了~~~

------解决方案--------------------
用firebug调试一下你就知道咯。
------解决方案--------------------
myFunction2是函数引用,直接使用
myFunction1()是函数调用,使用其返回值