Vla*_*gas 21 javascript node.js javascript-objects ecmascript-6
我想使用Javascript/Node JS创建一个静态类.我使用谷歌,但我找不到任何有用的例子.
我想在Javascript ES6中创建这样的东西(C#):
public static MyStaticClass {
   public static void someMethod() {
      //do stuff here
   }
}
现在,我有这个类,但我认为这个代码每次从"require"调用时都会创建一个新实例.
function MyStaticClass() {
   let someMethod = () => {
      //do some stuff
   }
}
var myInstance = new MyStaticClass();
module.exports = factory;
vad*_*lim 40
您可以在对象中创建一个方法,而不是多次创建类来访问其方法
var MyStaticClass = {
    someMethod: function () {
        console.log('Doing someMethod');
    }
}
MyStaticClass.someMethod(); // Doing someMethod
因为在JS中,一切都是对象(原始类型 + undefined+ 除外null).就像someMethod上面创建函数一样,您实际上创建了一个可以使用someMethod内部MyStaticClass对象访问的新函数对象.(这就是为什么你可以访问someMethod像MyStaticClass.someMethod.prototype或的对象的属性MyStaticClass.someMethod.name)
但是,如果您发现使用类更方便.ES6现在可以使用静态方法.
例如
MyStaticClass.js
class MyStaticClass {
    static someMethod () {
        console.log('Doing someMethod');
    }
    static anotherMethod () {
        console.log('Doing anotherMethod');
    }
}
module.exports = MyStaticClass;
Main.js
var MyStaticClass = require("./MyStaticClass");
MyStaticClass.someMethod(); // Doing someMethod
MyStaticClass.anotherMethod(); // Doing anotherMethod