I personally think that it would be clearer if above this definition for `gameCanvas.addEventListener` you had the line:

    var self = this;

and then you used `self` instead of `this` in the event handler.  That would avoid the `bind`.  But was that what you were saying wasn't working?