在最外层定义的变量都是属于window这个object的,那么在function中声明的变量属于哪个object?
<script type="text/javascript">
function f1()
{
    var n=999;
    function f2(){
       alert(n); 
    }
    return f2;
}
</script>
这里的n和f2属于f1吗?还是属于其它的object?

解决方案 »

  1.   

    是的,是f1的局部变量
    function f1()
    {
        var n=999;
        function f2(){
           alert(n);  
        }
        return f2;
    }
    f1()()
    alert(window.f2)
      

  2.   

    calmcrime同学
    function f1()
    {
        var n=999;
        function f2(){
           alert(n);  
        }
        return f2;
    }
    f1()();
    alert(window.f2); //undefined
    alert(f1.f2);//undefined
    window.f2和f1.f2都是undefined,如何证明f2是f1的局部变量呢?
      

  3.   

    f1是函数,要返回f2的话,需要这样
    function f1()
    {
        var n=999;
        function f2(){
           alert(n);   
        }
        return {
    f2 : f2
    };
    }
    f1().f2();
    alert(window.f2);
    alert(f1().f2);