1
function unit(){
    this.html=$('<div></div>');
    this.html.click(this,function(e){
        e.data.move(e.data.x,e.data.y);
    });
}

$('#factory').click(function(){
    unit();
}

JavascriptでOOPを学ぼうとしています。これは、私が練習用に作成した戦争ゲームのユニットの「クラス」です。工場をクリックするたびに、新しいユニットが作成されます。ただし、古いユニットをクリックして移動すると、常に最新のユニットが移動します。なので基本的にe.dataはクリックされたものではなく、常に最新のユニットに対応しています。e.dataクリックされたユニットに常に対応するようにするにはどうすればよいですか?

4

1 に答える 1

2

thisを使用しwindowない場合の参照です。今のままでは、クリックするたびに上書きしています。newunit();window.html

新しいオブジェクトを作成してthisそのオブジェクトを参照するには、次のようにします。

new unit();
于 2013-03-13T02:05:50.613 に答える