请看代码段:test=function(){
   function oFunction(){
        alert('override this');
   }
   return {
       helloworld:function(){
        oFunction();
       }
   }
}();
test.helloworld();
请问以上代码是不是经常被用来做静态类,原理是什么我知道function(){}来做一个类或者匿名函数,以上这段代码可以实现静态类的功能,oFunction为静态类内的私有函数(至少实现这个功能了),请问是否有可能重写覆盖掉oFunction方法呢?能讲解下吗?

解决方案 »

  1.   

    私有方法覆盖不了,只能覆盖暴露的方法,如:helloworld
      

  2.   

    能解释下上面代码什么情况吗?function(){}();这个中东西,我看到有人(function(){
    代码内容
    })();这样用,不懂
      

  3.   

    这个是为了避免命名冲突,即:不产生全局变量。也就是尽可能少的使用全局变量。特别是一个页面要引用多个js或模块的时候。试想,你在代码里声明里一个count的全局变量,别人也在不知情的时候操作这个变量,执行的效果不是预期,杯具就出现了。
      

  4.   

    (function(){
    代码内容
    })();
    就相当于定义函数后马上执行
    等于
    var tt=function(){
    代码内容
    }
    tt()