我有一个类文件,它根据实例化期间传入的参数创建套接字连接。
当我尝试多次实例化这个文件时(for循环),看起来node.js就像单例一样处理它。
有没有办法可以从同一个js文件创建新实例,这个文件可以传递自己的参数?
app.js
for(var i....){
require('./controller/sockets')(param[i]);
}
./控制器/插座
var util = require('util');
var param
Socket = function(iParam) {
param = iParam;
};
util.inherits(Socket,EventEmitter);
Socket.prototype.test = function(){
return param;
};
module.exports = Socket;
谢谢!
答案 0 :(得分:1)
您的构造函数实际上并未创建任何内容。它只是在变量中存储一个参数。所以,当你把它调用N次时,它所做的就是连续N次将不同的值存储到同一个变量中。
您的代码基本上是这样做的:
var param;
var Socket = function(iParam) {
param = iParam;
}
for(var i....){
Socket(param[i]);
}
我不清楚你想要它做什么,但也许构造函数需要创建一个对象(可能使用new
),初始化它然后返回它。
如果你想从每次调用构造函数回来一个新的Socket对象,那么你可以这样做:
var util = require('util');
function Socket(iParam) {
this.param = iParam;
}
util.inherits(Socket,EventEmitter);
Socket.prototype.test = function(){
return this.param;
};
module.exports = function(x) {
return new Socket(x);
};