Bene, ho capito l'intenzione, tuttavia non mi è chiaro il contesto in cui devi applicare questa roba quindi mi è difficile darti una risposta mirata. E' possibile risolvere in vari modi ma bisognerebbe aoppunto capire qual è il motivo per il quale vuoi richiamare la funzione prova() in quel modo.

Teoricamente potresti applicare tale funzione direttamente come callback dell'evento in questione (al posto della funzione anonima che invece hai definito):

codice:
$('#id_tipo').change(prova);
            
function prova(){
   var idElemento = this.id;
   console.log(idElemento);
};
In questo caso all'interno della funzione (direttamente richiamata per quell'evento) si ha un contesto riferito all'elemento stesso da cui è scaturito tale evento. In altre parole il this fa riferimento direttamente all'elemento in questione.

Se invece vuoi richiamare la funzione dall'interno del callback, come stavi cercando di fare, puoi usare la funzione call() in modo da determinare uno specifico context.

codice:
$('#id_tipo').change(function(){
   prova.call(this);
});
            
function prova(){
   var idElemento = this.id;
   console.log(idElemento);
};
In modo simile puoi usare apply() se ti serve passare anche dei parametri alla funzione stessa.

Vedi se può bastare quanto indicato tenendo conto che potrebbero esserci anche altri differenti modi per risolvere ma, ripeto, è difficile darti un suggerimento preciso senza conoscere la situazione in cui devi usare questo script nonché l'obiettivo finale che vorresti ottenere di preciso.