Я пытаюсь создать класс для обработки ввода в моей игре. У меня в настоящее время есть объект, называемый ключами, в моем классе, который содержит ключевые состояния. Однако ключи всегда не определены.Объекты не определены в классах
class PWInput{
constructor(){
this.keys = {};
document.onkeydown = function(e) {
try{
var tk = String.fromCharCode(e.keyCode);
this.keys[tk] = true;
}catch(e){
console.log(e);
}
}
document.onkeyup = function(e) {
try{
var tk = String.fromCharCode(e.keyCode);
this.keys[tk] = false;
}catch(e){
console.log(e);
}
}
}
}
Это меня озадачивает; объект ключей создается до того, как назначены обратные вызовы, поэтому они не должны всегда определяться? Даже если у меня console.log (this.keys) справа есть объект ключей, ключи всегда не определены.
Любая помощь приветствуется.
это ключевое событие здесь – Geeky
вы можете использовать bind, чтобы изменить контекст этого – Geeky
Связанный: [Как получить доступ к правильному 'this' внутри обратного вызова?] (https: // stackoverflow.com/questions/20279484/how-to-access-the-correct-this-inside-a-callback) –