CommonJs:在哪里放置初始化代码?

时间:2015-01-10 03:55:37

标签: node.js commonjs

学习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

1 个答案:

答案 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 //...