如何在javascript / nodejs中创build静态函数/对象(ES6)
我想用Javascript / Node JS创build一个静态类。 我用谷歌,但我找不到任何有用的例子。
我想在Javascript ES6中创build这样的东西(C#):
public static MyStaticClass { public static void someMethod() { //do stuff here } }
现在,我有这个类,但是我认为这个代码每次从“require”调用时都会创build一个新的实例。
function MyStaticClass() { let someMethod = () => { //do some stuff } } var myInstance = new MyStaticClass(); module.exports = factory;
请注意,JS是基于原型的编程 ,而不是基于类 。
而不是多次创build类来访问它的方法,你可以在一个对象中创build一个方法
var MyStaticClass = { someMethod: function () { console.log('Doing someMethod'); } } MyStaticClass.someMethod(); // Doing someMethod
由于在JS中,一切都是一个对象(除了基本types + undefined
+ null
)。 就像上面创build一些方法函数一样,你实际上创build了一个新的函数对象,可以用MyStaticClass
对象中的someMethod
来访问。 (这就是为什么你可以访问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
我会使用一个对象文字:
const myObject = { someMethod() { // do stuff here } } module.exports = myObject;
您可以使用static
关键字来定义一个类的方法
class MyStatisticsClass { static someMethod() { return "MyStatisticsClass static method" } } console.log(MyStatisticsClass.someMethod());