así que encontré este pedazo de código y es obvio que funciona (como lo ha sido en la producción por año):Función Javascript autodestructiva - ¿Cómo funciona?
window[someMethod] = function (tmp) {
callback({prop:"val"}, tmp);
// Garbage collect
window[someMethod] = undefined;
try {
delete window[someMethod];
}
catch (e) { }
if (head) {
head.removeChild(script);
}
// head refers to DOM head elem and script refers to some script file elem
};
curioso saber, ¿cómo funciona?
- ¿Cómo puede que se había fijado a
undefined
dentro de su cuerpo ytry
adelete
sí? - ¿El navegador saben a no ejecutar la
undefined
delete
y hasta que termine la llamada? ¿Y cómo? - Si el navegador lo elimina de inmediato, ¿qué ocurre después? ¿Se ejecuta la última línea?
- Finalmente, ¿ustedes ven este filtrado de memoria? Si es así, ¿cómo? ventana
Aunque la función de devolución de llamada conserva una referencia a 'tmp' en alguna parte, no veo por qué no habría una pérdida de memoria ... –
Probablemente tienes razón, la respuesta actualizada. – yan
Esto es muy útil. ¡Siento que tuve un brainstuff hoy antes de publicar esto! – Mrchief