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

thiswindow如果您不使用newto invoke是一个参考unit();。现在的方式是,window.html每次单击时都会覆盖。

要创建一个新对象并this引用该对象,请执行以下操作:

new unit();
于 2013-03-13T02:05:50.613 回答