我有以下目标代码(简称):
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中,会显示一条错误消息:TypeError: e is undefined
,与Chrome Uncaught TypeError: Cannot read property 'keyCode' of undefined
一样。
答案 0 :(得分:2)
你不必传递事件,它自己传递,你应该引用函数而不是调用它
that.unhighlightedCode.onkeydown = that.keys;