CommonJs:初始化代码放在哪里?
CommonJs: where to put initialization code?
学习 CommonJS 并尝试弄清楚将初始化私有变量的代码放在哪里。在 C# 或 Java 中,我会使用构造函数,但我无法弄清楚 how/where 使用 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
在您第一次使用 require('./CoolModule')
时,节点 运行 您的模块代码并缓存它。
所以你的 CoolModule 就像一个 singleton
。
Java脚本没有Java-like class,可以使用构造函数来初始化。
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 //...
学习 CommonJS 并尝试弄清楚将初始化私有变量的代码放在哪里。在 C# 或 Java 中,我会使用构造函数,但我无法弄清楚 how/where 使用 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
在您第一次使用 require('./CoolModule')
时,节点 运行 您的模块代码并缓存它。
所以你的 CoolModule 就像一个 singleton
。
Java脚本没有Java-like class,可以使用构造函数来初始化。
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 //...