本帖最后由 h123hu 于 2012-03-19 11:48:58 编辑

解决方案 »

  1.   

    不知道LZ从哪儿弄的例子..
    没看出什么优势不优势的, 第二个例子中内部函数定义完直接调用, 而第一个例子中内部函数定义完并没有执行.至于什么变量私有化.. JS只有函数能创建新的上下文, 外部函数不能访问内部的, 内部能访问外部的 .
      

  2.   

     没什么实质的差别,对oDemo这个函数来说结果都一样,但是要知道下面这个是 匿名函数的使用
    (function() {
          ......    
    })()//匿名函数,匿名函数就是没有实际名字的函数. (function(){ 
     alert(333);
    })();  //立即执行这个 匿名函数中的代码    运行下这个就清楚了
    alert(typeof function(){});// "function" 
      

  3.   

    JS匿名函数的理解 参考:http://blog.csdn.net/zhaozheng7758/article/details/6168203
      

  4.   


    for(var i=0;i<10;i++){}
                        return i;    //返回的i是10js中没有语句级的变量作用于,所以for中声明的i变量在for语句外也是可以访问的
      

  5.   

    function oDemo()
                {
                    function pr()
                    {
                        for(var i=0;i<10;i++){}
                        return i;    //返回的i是10
                    }
     pr()  //加了这句 就和你第二个一样的效果 只不过第二个是用的匿名函数而已
               return i;    //这里的i是未定义的
                }
                
           alert(oDemo());    //报错i未定义