学习CommonJS并尝试在何处放置初始化私有变量的代码。在C#或Java中,我会使用构造函数,但我无法弄清楚如何/在哪里用CommonJs实现这一点。
以下是一些代码来说明我的要求:
var _myPrivateVariable;
var CoolModule = {
{
foo: function(task) {
//do something that relies on _myPrivateVariable having been properly initialized
},
bar: function(task) {
//do something that relies on _myPrivateVariable having been properly initialized
},
module.exports = CoolModule
答案 0 :(得分:2)
在您第一次使用require('./CoolModule')
时,节点会运行模块的代码并对其进行缓存。
所以你的CoolModule就像singleton
。
JavaScript没有类似Java的类,它可以使用函数构造函数进行初始化。
var _myPrivateVariable;
// function constructor
function CoolModule(args) {
}
CoolModule.prototype.foo = function(task) {
};
CoolModule.prototype.bar = function(task) {
};
module.exports = CoolModule;
然后
var CoolModule = require('./CoolModule');
var cool = new CoolModule(args);
cool.foo //...
cool.bar //...