me imaginaba que el asunto iba por un closure, lo que dezconocia era que no se puede borrar un simbolo (variable o funcion) que reside en un scope distinto al lugar donde se invoca delete. en el siguiente ejemplo, en la consola debes ver que imprime: Object, false, Object. el false se refiere a que la operacion
delete private no fue exitoso. conclusion, no puedes borrar una variable cuando se crea un closure. tendras que utilizar la alternativa que antes indique, asignale a la variable null o undefined. en realidad no estarias borrandolo, pero si deberia liberar suficiente memoria ocupada comparado con null o undefined.
Código:
function closure(){
var private = {prop: true, method: function(){}};
return function(){
console.log(private);
console.log(delete private);
console.log(private);
};
}
closure()();