Nazwy zdarzeń nie zawierają w sobie przedrostka on. Używa się go tylko w przypadku atrybutów w znacznikach HTML, do oznaczenia, że dany atrybut zawiera obsługę danego zdarzenia. Stąd należy użyć keydown.
Natomiast addEventListener wymaga też, by przekazywać mu funkcję. Funkcją jest klik – a więc wystarczy podać samą nazwę. Jeśli podamy klik( event ), to tak naprawdę od razu wywołamy funkcję klik i to, co ona zwróci, zostanie przypisane jako listener do zdarzenia keydown. W przypadku atrybutu [onkeydown] taki kod działa, ponieważ jest on tak naprawdę traktowany jako wnętrze funkcji, czyli mniej więcej coś takiego w JS:
function( event ) {
klik( event );
}
I taką też konstrukcję trzeba użyć w addEventListener, względnie jej skróconą wersję:
document.body.addEventListener( 'keydown', function( event ) {
klik( event );
} );
// lub
document.body.addEventListener( 'keydown', klik );