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);
};
我有一个 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);
};