誰かが私を助けてくれるのだろうか。Java と C++ のバックグラウンドを持っているので、Javascript できちんとした OO 実装を書こうとしています。Socket.io で次のパターンを使用しています。
listen 関数では、最初のアラートでインスタンス変数が適切に定義されます。x インスタンス変数は socket.on イベント リスナーのスコープ外になり、両方のインスタンス変数は JQuery $.each のスコープ外になります。
誰かがここで何が起こっているのか説明できますか?
var Player = (function () {
this.x  = "";
//Constructor
var Player = function() {
    // connect to the server
    this.x = "somevalue";
    this.socket  = io.connect();
};
Player.prototype = {
    constructor: Player,
    listen: function() {
     alert(this.x + " " + this.socket);           // fine get somevalue & [object, object]
     this.socket.on('event', function(data) {
        alert(this.x + " " + this.socket);        // this.x undefined this.socket [object, object]
        $.each(data, function(index,value) { 
           alert(this.x + " " + this.socket);     // undefined undefined  
        });
     });  
    }
return Player;
})();