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
始终对应于单击的单位?
答案 0 :(得分:2)
this
来调用window
,则 new
是unit();
的引用。现在的样子,每次点击都会覆盖window.html
。
要创建新对象并使this
引用该对象,请执行以下操作:
new unit();