2017-08-12 13 views
0

としてイベントオブジェクトを渡すときIいる(略して)次のオブジェクトコード:エラー引数

var codeEditor = function() { 
    ... 
    // The non-highlighted code. 
    this.unhighlightedCode = null; 
    ... 
    // "this" object 
    var that = this; 

    this.keys = function(e) { 
    switch (e.keyCode) { 
     default:; 
    } 
    }; 

    // Initialization 
    this.init = function() { 
    ... 
    that.unhighlightedCode = document.getElementById("unhighlightedCode"); 
    that.unhighlightedCode.onkeydown = that.keys(event); 
    }(); 
} 

// The implementaion 
var editor = new codeEditor; 

問題:この行that.unhighlightedCode.onkeydown = that.keys(event);
イベントオブジェクトを渡します。

結果:
Firefoxの場合、、Chromeの場合はUncaught TypeError: Cannot read property 'keyCode' of undefinedのエラーメッセージが表示されます。

答えて

2

あなたは、それ自体を渡し、イベントを渡す必要はありませんあなたは関数を参照するのではなく

that.unhighlightedCode.onkeydown = that.keys; 
それを呼び出す必要があります