我想使用 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;
注意JS是基于原型的编程 http://en.wikipedia.org/wiki/Prototype-based_programming, 代替基于类的 https://en.wikipedia.org/wiki/Class-based_programming.
您可以在对象中创建一个方法,而不是多次创建类来访问其方法,例如
var MyStaticClass = {
someMethod: function () {
console.log('Doing someMethod');
}
}
MyStaticClass.someMethod(); // Doing someMethod
因为在 JS 中,一切都是对象(除了原始类型 https://developer.mozilla.org/en-US/docs/Glossary/Primitive + undefined
+ null
)。就像你创建时一样someMethod
上面的函数,您实际上创建了一个新的函数对象,可以使用someMethod
inside MyStaticClass
目的。(这就是为什么您可以访问someMethod
类似物体MyStaticClass.someMethod.prototype
or MyStaticClass.someMethod.name
)
但是,如果您发现使用 class 更方便。 ES6 现在可以使用静态方法 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/static.
E.g.
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)