我有一篇关于commonJS - foun
讨论的有趣读物http://smorgasbork.com/index.php?option=com_content&view=article&id=132
但是,它没有回答我的主要问题 - 是否可以在通用commonJS对象中拥有公共成员?
也就是说,不是创建了整个花哨的对象(教程会详细介绍其中的详细信息),而是通用样式。
如果声明,如果它是静态的等等 - 任何人都知道吗?
答案 0 :(得分:0)
如果我理解你的问题,那么是。
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
访问它,那么它也是公开的。
off topic:在导出此模块之前,您可以创建一个实例并导出实例。这会在Java中创建类似单例的东西。因此,每当您请求此模块时,您将获得相同的实例:
MyClass = new MyClass();
module.exports = MyClass;
但是这将删除所有静态引用,因为在这种情况下MyClass将是一个实例。