node.js多次实例化类

时间:2015-02-12 04:11:02

标签: javascript node.js class

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

当我尝试多次实例化这个文件时(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;

谢谢!

1 个答案:

答案 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);
};