我的客户“类”如下所示:
var Client = (function () {
function Client(socket)
{
this.socket = socket;
this.country_code = null;
var that = this;
this.socket.on('message', function(data) {
var r = JSON.parse(data);
switch (r.action) {
case 'init':
that.country_code = r.country_code;
break;
}
});
}
Client.prototype.message_handler = function(data)
{
};
return Client;
})();
我正在使用 websocket.io 模块来接收来自客户端的消息。现在,上面的代码可以工作了,但我真的很想拥有Client.prototype.message_handler
, 以便 ctor 看起来像这样:
function Client(socket)
{
this.socket = socket;
this.country_code = null;
this.socket.on('message', this.message_handler);
}
但是,问题是现在在 message_handler 函数中
Client.prototype.message_handler = function(data)
{
var r = JSON.parse(data);
switch (r.action) {
case 'init':
this.country_code = r.country_code; // Doesn't work.
break;
}
};
this
不解析为客户端类。无论如何要通过this
函数或通过函数传递什么this.socket.on('message', this.message_handler)
?这样,我可以将继承与不同的处理程序一起使用。