当我尝试使用“this”关键字访问对象时,我得到的是“window”对象而不是对象本身,因为我将它的函数绑定到一个事件并且该事件属于 window 对象。
在示例中,alert(this.osd)
表示它未定义,因为“window”对象中没有“osd”。那么,解决这个问题的最佳方法是什么?将游戏对象定义为 window.game ?
var game = {
osd : null,
stage : null,
tick : function(){
alert(this.osd);
},
init : function(){
// Configure the OSD
this.osd = "a";
// Preapare the stage;
this.stage = "b";
window.addEventListener("click",this.tick);
}
}
game.init();