我正在使用Node.js开发一个项目,想要打开一些额外的线程以更有效地处理负载。但是我使用带有函数定义的类,并且在尝试将这些对象发送到工作线程时,对象中定义的函数会消失,只剩下对象中的其他字段。是否有办法发送一个能够保留函数并在工作线程中被调用的对象给工作线程?
var cluster = require('cluster');
if(cluster.isMaster){
Monster = function(species){
this.attack = function(){
console.log('CHOMP');
};
this.name = species;
};
var vamp = new Monster('vampire'),
worker = cluster.fork();
worker.send({'monster' : vamp});
}
else{
process.on('message', function(msg) {
console.log(msg.monster); //this logs "{ name: 'vampire' }"
msg.monster.attack(); //TypeError: Object #<Object> has no method 'attack'
});
}