我读了一篇关于 commonJS - foun 的有趣文章
http://smorgasbork.com/index.php?option=com_content&view=article&id=132
但是,它没有回答我的主要问题——通用 commonJS 对象中是否可以有一个公共成员?
也就是说,不是使用创建的整个精美对象(本教程将详细介绍令人耳目一新的细节),而只是,您知道,通用样式。
如何声明,如果它是静态的或不是等 - 有人知道吗?
我读了一篇关于 commonJS - foun 的有趣文章
http://smorgasbork.com/index.php?option=com_content&view=article&id=132
但是,它没有回答我的主要问题——通用 commonJS 对象中是否可以有一个公共成员?
也就是说,不是使用创建的整个精美对象(本教程将详细介绍令人耳目一新的细节),而只是,您知道,通用样式。
如何声明,如果它是静态的或不是等 - 有人知道吗?
如果我理解你的问题,那么是的。
function MyClass(options) {
// something like a constructor in java
this.myProperty = 'foo'; // instance property
}
MyClass.prototype.doSometing(what)
// this is an instance method (because of prototype, this is generated for each instance, can have a reference to `this`)
}
MyClass.doSomethingElse(andWhat)
// this is a static method, which is not available for an instantiated object (only via MyClass.doSometingElse();)
}
MyClass.staticProperty = 'bar'; // static property;
module.exports = MyClass;
我希望这是你想知道的。它们都是公开的。不可能创建私有静态属性,因为这些属性始终是公共的。此外,私有实例属性通常不是私有的或不是不动产。它只是一个局部变量,只能在定义它的函数内访问。如果您可以通过 访问它this
,那么它也是公开可用的。
题外话:在导出此模块之前,您可以创建一个实例并导出该实例。这将在 Java 中创建类似单例的东西。因此,每当您请求此模块时,您都会得到相同的实例:
MyClass = new MyClass();
module.exports = MyClass;
但这将删除所有静态引用,因为在这种情况下 MyClass 将是一个实例。