Pensaci...

function aggiungi() {
// bla bla
}

E' un oggetto di tipo function

objHTTP.onreadystatechange=aggiungi; // assegni una function all'evento

objHTTP.onreadystatechange= function() {
// bla bla
} // assegni una function all'evento

Invece con

objHTTP.onreadystatechange=aggiungi() {

assegni all'evento il risultato della chiamata ad una funzione... ovvio che subito dopo ti chieda un ; ... tutto cio' che segue non serve

Scusa la spiegazione un tantino sempliciotta