Piano Keys Project: function with event handler properties

I don’t quite understand the anonymous function ( function() {keyPlay(event)} ) within the eventAssign function on the Piano Keys project.

Prompt 4 and 5 ask to create 2 event handlers that run ‘keyPlay’ as an event handler when a ‘mousedown’ event fires on any note and 'keyReturn as an event handler when a ‘mouseup’ event fires on any ‘note’.

The correct code block is:
eventAssign = note => {
note.onmousedown = function() {
keyPlay(event);
}
note.onmouseup = function() {
keyReturn(event);
}
}

This also works too:
eventAssign = note => {
note.onmousedown = keyPlay;
note.onmouseup = keyReturn;
}

BUT why doesn’t this work?:
eventAssign = note => {
note.onmousedown = keyPlay(event);
note.onmouseup = keyReturn(event);
}

AND what’s the difference between keyPlay and keyPlay(event)?

Link: https://www.codecademy.com/paths/web-development/tracks/build-interactive-websites/modules/dom-javascript-events/projects/piano-keys

keyPlay is the callback reference which will be invoked when the event fires.

keyPlay(event) is invoked on the event object within the callback function. We cannot register it to a listener if we invoke it at the same time. The listener won’t work.