javascript - JavaScript 中的公共(public)静态对象

标签 javascript static

我是一名 Java 程序员,我正在尝试创建类似于 JS 中的公共(public)静态类的东西。

这就是我在 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 对待它们的方式不同?我应该选择哪一个,或者还有另一种更好的方法吗?

最佳答案

尽管我不想允许我的类有多个实例,但我还是决定采用“new function()”构造。这主要是因为它在语法上允许我将私有(private)变量与其公共(public)接口(interface)分组。它还允许我按照我选择的顺序声明和执行我的代码,就像从私有(private)方法调用公共(public)方法一样,而在闭包中,我被迫在声明公共(public)方法之前执行静态逻辑,这使得这是不可能的。

Netbeans 似乎也更喜欢它。闭包似乎使我的私有(private)变量在导航器 View 中显示为公共(public)变量。

关于javascript - JavaScript 中的公共(public)静态对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42578266/

相关文章:

javascript - 将自执行 JavaScript 函数放入 'normal' 函数中

java - 扩展 Java 类还是提供静态帮助类?

.net - 在带有 SOS 的 WinDbg 中查找静态字段的地址

C++:将静态类成员与静态类成员的传递版本进行比较

javascript - 当前浏览器中的闭包和 (jQuery) DOM 事件导致内存泄漏?

javascript - 更改html中的href

javascript - 在 Ionic 中选择多个图像

c++ - 为什么非常量静态变量需要在类外初始化?

.net - 如何在应用程序启动和关闭时自动在静态类中调用方法?

javascript - DriveApp.GetFoldersByName() 总是返回 true