我已经简化了我的代码来说明问题。
function SnakeGame ()
{
this.snakeDirection = 'right';
this.Init = function ()
{
window.addEventListener('keydown', this.keyboardInput, false);
}
this.keyboardInput = function (event, SnakeGameObject)
{
console.log(SnakeGameObject); //Error since I can't pass this variable...
console.log(event.keyCode); //Works
}
}
在 this.keyboardInput 函数中,我尝试更改变量 this.snakeDirection; 问题是我无法获得对 SnakeGame 对象的引用。在keyboardInput 函数中,this 指的是window。我明白为什么它指的是窗口,但我想不出一个解决方案......
完整的代码可以在这里看到:http: //eriknijland.nl/stackoverflow/snake_event_listener/