Я разработчик С#, экспериментирующий с JavaScript, и я пытаюсь разглядеть область видимости:)
У меня есть следующий код, который содержит addEventListener
, в котором я хочу использовать поле из моего объекта:
(function(window) {
function Keyboard() {
this.keys = {};
}
Keyboard.prototype.handle_keydown = function(args) {
this.keys[args.keyCode] = true;
}
Keyboard.prototype.listen = function() {
window.addEventListener('keydown', this.handle_keydown);
}
app.util.keyboard = new Keyboard();
})(window);
Я хотел бы использовать массив ключей в моем hander, но понимаю, что я не могу получить доступ, используя это, потому что это окно в этом контексте (правильно?). Если я изменю его на
app.util.keyboard.keys[args.keyCode] = true;
он работает, но я не уверен, что это хороший способ его исправить.
Я нашел этот вопрос, который кажется довольно похожим, но я не уверен, как я могу поместить его в свой пример.
Спасибо за вашу помощь!