Qual é a diferença entre uma chamada de função e uma referência de função?

Eu tenho a seguinte função

function hello() {
 alert("hi!");
}

Pegue este trecho de código:

var elem = document.getElementById("btn");
elem.onclick = hello;

Minha pergunta pode ser um pouco difícil de entender, por isso, tenha paciência comigo: o que diferencia EXATAMENTE essa parte do código de uma chamada normal ou o que faz essa parte do código exigir uma referência à variável de função em vez de uma chamada normal? (hello();)

Como posso saber onde devo dar uma referência à função e quando devo chamá-la?

questionAnswers(6)

yourAnswerToTheQuestion