私はこのコードを持っています:
function Keyboard() {
this.log = $('#log')[0];
this.pressedKeys = [];
this.bindUpKeys = function() {
$('body').keydown(function(evt) {
this.pressedKeys.push(evt.keyCode);
var li = this.pressedKeys[evt.keyCode];
if (!li) {
li = this.log.appendChild(document.createElement('li'));
this.pressedKeys[evt.keyCode] = li;
}
$(li).text('Down: ' + evt.keyCode);
$(li).removeClass('key-up');
});
}
this.bindDownKeys = function() {
$('body').keyup(function(evt) {
this.pressedKeys.push(evt.keyCode);
var li = this.pressedKeys[evt.keyCode];
if (!li) {
li = this.log.appendChild(document.createElement('li'));
}
$(li).text('Up: ' + evt.keyCode);
$(li).addClass('key-up');
});
}
}
これらのエラーが発生します:
TypeError: 'undefined' is not an object (evaluating 'this.pressedKeys.push')
アレイで何をしたいかは関係ありません。プロトタイプ内に存在しないかのように、アクセスエラーが発生し続けます。
私は何が間違っているのですか?:(プロトタイプ内の他の値と同じように配列にアクセスしているだけです)。オブジェクト内のオブジェクトに問題はありますか?