sto ottenendo questo errore con JSLint: Solo gli oggetti devono essere cancellatiSolo gli oggetti devono essere cancellati
Perché non è vero come questo? La variabile che sto tentando di eliminare è molto grande, quindi speravo di ottenere un salto sulla garbage collection. Non è ok?
Non è possibile eliminare le variabili, solo le proprietà dell'oggetto. Quindi anche se 'var a = 5; cancella a; 'non lancia un errore (in realtà lo fa in * strict mode *), non fa nulla neanche (' delete a; 'restituirà' false'). Quindi: è un codice valido, ma non fa quello che vuoi, quindi è solo confuso. –
@FelixKling No, non è questo il fatto. In realtà è possibile eliminare le variabili eliminando l'operatore. È possibile scrivere ed eseguire un codice di prova. 'var a = 11; avviso (cancella a); alert (typeof a); ' avviserà true e" undefined ". – cuixiping
@cuixiping Felix Kling ha ragione. Non è possibile eliminare variabili (locali) usando 'delete'. Le variabili globali sono diverse perché in realtà sono proprietà associate all'oggetto 'window'. – NullUserException