【发布时间】:2015-03-11 01:57:48
【问题描述】:
我一直在尝试在多个文件中使用单个 JavaScript 对象。为此,我选择了 JavaScript 中的单例设计模式。
mySingleton.js
var mySingleton = (function () {
var instance;
function init() {
function privateMethod(){
console.log( "I am private" );
}
var privateVariable = "Im also private";
var privateRandomNumber = Math.random();
return {
publicProperty: "I am also public",
publicMethod: function () {
console.log( "The public can see me!" );
},
getRandomNumber: function() {
return privateRandomNumber;
}
};
};
return {
getInstance: function () {
if ( !instance ) {
instance = init();
console.log("Newly creating an object");
}
return instance;
}
};
})();
module.exports = mySingleton;
我正在一个单独的节点 js 文件中访问上述对象。如下代码所示
test.js
var singleton = require('./mySingleton');
var obj = singleton.getInstance();
console.log(obj.publicProperty);
console.log('random number value:'+obj.getRandomNumber());
test2.js
var singleton = require('./mySingleton');
var obj = singleton.getInstance();
console.log(obj.publicProperty);
console.log('random number value:'+obj.getRandomNumber());
当我每次创建一个新的 javascript 对象时执行上述两个文件。但我想在多个文件中使用同一个 JavaScript 对象。
提前谢谢....
所以任何人都可以提出任何建议来实现上述功能。
【问题讨论】:
-
您应该删除
java标签。 Java 是一种与 Javascript 无关的编程语言 :) -
您是否使用任何框架,例如 Express 4.0?
-
你是在一个一个独立的执行test.js和test2.js吗?
-
你在做
node test.js然后运行node test2.js吗? -
不@Datsik我没有使用像express这样的任何框架,我只是在普通的节点js文件中使用。是的,我正在这样做“节点 test.js 然后运行节点 test2.js”。
标签: node.js nodes javascript