我已将(客户端)socket.io 包装在原型类中:
Chat.Client = Class.create();
Chat.Client.prototype = {
initialize: function() {
...
this.socket.on('message', this.on_message);
...
},
on_message: function(data) {
this.add_chat_message(data.something);
}
do_something: function(something) {
...
}
这不起作用,因为 on_message 中的“this”将是“SocketNamespace”。传统上我会通过将“this”作为附加参数传递给回调来解决这个问题,但是因为我使用的是 socket.io,所以我不能简单地这样做。
我该如何解决这个问题?