Il codice non cambia, cambia solo quando viene chiamato.

Prova a pensare (al rallentatore) cosa avviene quando premi un tasto.
0. il SO controlla in quale finestra e` il focus
1. il tasto va giu`.
2. il SO vede la pressione
3. il SO passa l'evento "tasto giu`
4. il SO legge il tasto premuto
5. il SO controlla se deve lui fare qualche azione su quel tasto
6. il SO passa il codice alla applicazione
7. il browser vede che e` stato premuto un tasto
8. il browser scatena l'evento onmousedown (se settato)
9. il browser legge il tasto
10. il browser verifica se deve fare qualcosa lui
11. il browser passa il codice del tasto al campo
12. il tasto torna su
13. il SO passa il segnale "tasto rilasciato" all'applicazione
14. il browser riceve il segnale
15. il browser scatena l'evento onmouseup (se settato)
ecc....