variables locales desde fuera

El?
14 de Febrero del 2010
Las variables locales parece que no "mueren" al terminar la función, y se pueden usar como "atributos" de una especie de "objeto-función", por ejemplo:


var setLocal, getLocal;
(function(){
var local = 0;
setLocal = function(valor){local=valor;};
getLocal = function(){return local;};
})();

alert(getLocal()); // muestra 0
setLocal(123);
alert(getLocal()); // muestra 123


Lo he probado bastante y parece que no falla nunca en ningún navegador y facilita el tratamiento de eventos y aumenta la compresión (yuicompressor minimiza todas las locales), pero me pregunto si será seguro o simplemente funciona porque javascript use borrado perezoso (no eliminar, sino marcar como borrado/reemplazable) y por consiguiente dichas locales están accesibles desde el exterior mientras no sea necesario su espacio para otras variables (pila bastante llena), otra opción es que trate esas variables como objetos en java y al estar referenciadas desde el exterior no "mueran" nunca. ¿Que pasa realmente con esas variables?