No sé en jQuery, pero en un click normal de javascript ambas quedan en memoria, sólo que una queda en el ámbito de la función anónima y la otra, que no existía, pasa a ser una nueva propiedad de window o del ámbito donde se encuentre la función anónima. En cuanto a cuándo borrarlas, cuando dejes de utilizarlas, pero no sólo usando delete las eliminás de memoria: también las eliminás igualándolas a null.
Pero no usar var puede ser peligroso. Por ejemplo, si tenemos declarada esta función:
Código PHP:
function algo(){
return function(){
a=5;
}
}
Si hacemos:
Código PHP:
alert(a)//error: a es undefined
Si hacemos:
Código PHP:
algo();
alert(a)//error: a es undefined
Si hacemos en cambio:
Código PHP:
algo()();
alert(a)//a=5
Si en cambio tenemos otra función declarada así:
Código PHP:
function algo(){
a=5;
}
Si hacemos esto:
Código PHP:
alert(a)//error: a es undefined
Si hacemos esto:
Código PHP:
algo()
alert(a)//5
alert(window.a)//5
Es decir, aunque no sea tu intención, podés hacer que una variable se convierta en global sólo ejecutando la función si no le antepusiste el prefijo var.