Передача данных событий в обработчиках событий inline

У меня есть <input>, у которого есть обработчик события onkeydown inline. В этом обработчике я хотел бы вызвать функцию и передать ему специальный параметр - данные события.

Когда я хочу обрабатывать события (например, onmousemove) для всего документа, я использую следующий код:

document.onmousemove=function(e) {
// here I can make a good use of the 'e' variable,
// for example extract the mouse coordinates from it
}

И он работает (хотя я не знаю, откуда берутся данные e - данные события).
Но на этот раз я хочу использовать функцию только для <input>, упомянутого выше.
Мне нужно передать данные события в функцию, чтобы он мог получить нажатый key code. И я хочу сделать это в этом встроенном обработчике событий. Я создал функцию:

function myfunc (e) {
    var evt=window.event?event:e;
    var code=evt.keyCode;
    alert (code);
}

и попробовал все эти методы:

<input onkeydown="myfunc(this)">

<input onkeydown="myfunc(this.onkeydown)">

<input onkeydown="myfunc(onkeydown)">

Но никто из них не работал, в окне предупреждения отображалось "undefined".
Я искал решение своей проблемы в Google, но не нашел ничего, что могло бы помочь мне решить проблему.

Ответ 1

<input onkeydown="myfunc(event)">

function myfunc (e) {
    e = e || window.event;
    var code = e.keyCode;
    alert (code);
}