Considerate ho la pagina web di seguito scritto in HTML (sezione solo corpo):La raccolta dati javascript in linea è stata ritirata quando il corpo del documento è stato sostituito?
<body>
<p>
...
</p>
<script>
function fn() {
// do stuff
}
</script>
</body>
Ora, se si sostituisce la innerHTML
di document.body
da JavaScript con dire, un div, in modo che la parte del corpo diventa:
<body>
<div>
...
</div>
</body>
... poi è l'oggetto ammissibili per la garbage collection fn
se non esistono riferimenti ad esso in qualsiasi parte del resto del codice (qualsiasi contesto)?
La dichiarazione di funzione crea un oggetto funzione che è semanticamente separato dal contenuto del tag 'script' e memorizza un riferimento a quell'oggetto funzione nella variabile' pippo'; finché tale variabile mantiene tale riferimento, l'oggetto funzione deve continuare ad esistere. Tuttavia, ciò non dice nulla sul fatto che eventuali istruzioni JavaScript "standalone" debbano continuare a esistere in qualsiasi forma, né se una loro rappresentazione sarebbe mantenuta attiva se gli oggetti funzione fossero stati sostituiti. – supercat