Chamando uma função javascript no JSX: por que chamar uma função sem o () funciona?

Atualmente na Codecademy e aprendendo sobre o React.

Chegou a este código:

import React from 'react';
import ReactDOM from 'react-dom';

function makeDoggy(e) {
  // Call this extremely useful function on an <img>.
  // The <img> will become a picture of a doggy.
  e.target.setAttribute('src', 'https://s3.amazonaws.com/codecademy-content/courses/React/react_photo-puppy.jpeg');
  e.target.setAttribute('alt', 'doggy');
}

const kitty = (
  <img 
    src="https://s3.amazonaws.com/codecademy-content/courses/React/react_photo-kitty.jpg" 
    alt="kitty" 
    onClick={makeDoggy}
  />
  	
);

ReactDOM.render(kitty, document.getElementById('app'));

O atributo onClick do const kitty é definido como a função makeDoggy. Para fazer isso, você deve indicar que está usando Javascript, portanto, os colchetes {}. No entanto, a resposta correta usa makeDoggy em vez de usar a chamada de função padrão: makeDoggy ().

Além disso, a função makedoggy possui um parâmetro e. Quando esse parâmetro é passado e como uma chamada para makeDoggy pode ser feita com um parâmetro inexistente quando a função exige um?

questionAnswers(2)

yourAnswerToTheQuestion