node.js 多次实例化 class

node.js instantiate class multiple times

我有一个 class 文件,它根据实例化期间传入的参数创建套接字连接。

当我尝试多次实例化此文件(for 循环)时,看起来 node.js 正在像单例一样处理它。

有没有一种方法可以从同一个 js 文件创建新的实例,该文件可以保存自己传递的参数?

app.js

for(var i....){
    require('./controller/sockets')(param[i]);
}

./controller/sockets

var util = require('util');
var param

Socket = function(iParam) {
    param = iParam;
};

util.inherits(Socket,EventEmitter);

Socket.prototype.test = function(){
    return param;
};

module.exports = Socket;

谢谢!

您的构造函数实际上并没有创建任何东西。它所做的只是将参数存储在变量中。所以,当你调用它 N 次时,它所做的就是连续 N 次将不同的值存储到同一个变量中。

您的代码基本上是这样做的:

var param;
var Socket = function(iParam) {
    param = iParam;
}

for(var i....){
    Socket(param[i]);
}

我不清楚你想要它做什么,但也许构造函数需要创建一个对象(可能使用 new),初始化它然后 return 它。


如果你想从每次调用构造函数返回一个新的 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);
};