javascript中的公共静态对象

时间:2017-03-03 11:56:00

标签: javascript static

我是一名java程序员,我正在尝试创建一些与JS中的公共静态类接近的东西。

这就是我在java中编写代码的方式:

class Static{
    private static final int privInt;
    public static int pubInt;

    static{
        privInt = 5;
    }

    public int pubMeth(){
        return privMeth();
    }

    private static int privMeth(){
         return false;
    }
}

我很难从两种选择中选择:

var Static1 = new function(){

   var privInt;
   this.pupInt = 5;

   privInt = 5;

   this.pupMeth = function(){
       return privMeth();
   };

   function privMeth(){
       return false;
   };

};


var Static2 =(function(){

   var privInt;

   privInt = 5;

   function privMeth(){
       return false;
   }

   return{

       pubInt: 5,
       pubMeth: privMeth

   };

})();

也许它们只是同一种语法的语法风格,但是netbeans以不同的方式对待它们?我应该选择哪一个,还是有另一个更好的方法?

1 个答案:

答案 0 :(得分:0)

即使我不想允许我班级的多个实例,我也决定选择"新功能()"施工。这主要是因为它在语法上允许我将私有变量与其公共接口分组。它还允许我按照我选择的顺序声明和执行我的代码,比如从私有方法中调用公共方法,而在闭包中我被迫在我的公共方法被声明之前执行我的静态逻辑,这不可能。

Netbeans似乎也喜欢它。闭包似乎使我的私有变量在导航器视图中显示为公共。