私のクライアント「クラス」は次のようになります。
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)
か?そうすれば、さまざまなハンドラーで継承を使用できます。