23
C'è un distruttore in TypeScript? In caso contrario, come posso cancellare un oggetto? Ho provato destructor()
e ~ClassName()
ma non ha funzionato.C'è un distruttore in typeScript
C'è un distruttore in TypeScript? In caso contrario, come posso cancellare un oggetto? Ho provato destructor()
e ~ClassName()
ma non ha funzionato.C'è un distruttore in typeScript
JavaScript utilizza la garbage collection per eliminare automaticamente gli oggetti quando non vengono più referenziati. Non esiste un concetto di distruttori o finalizzatori.
Non è possibile osservare quando un garbage collector elimina un oggetto, né è prevedibile.
La raccolta dei dati inutili può essere prevenuta se un timer, un callback o un listener di eventi è ancora collegato all'oggetto da eliminare. È anche possibile ottenere errori se il callback/listener esiste ancora ma l'oggetto no. Se vuoi essere assolutamente sicuro di poter scrivere il tuo metodo di distruttore e chiamarlo prima di eliminare l'oggetto. – Kokodoko
Questa non è una risposta corretta. Gábor Lupák più che altro sa che c'è una raccolta di rifiuti in corso lì. Anche con un garbage collector, a volte è necessario rilasciare alcuni riferimenti di lunga durata in punti specifici durante l'esecuzione dell'app in modo che la risorsa di riferimento possa essere idonea per la garbage collection o almeno che non vi siano perdite di memoria. Il mio suggerimento è quello di creare un'interfaccia (esempio: interfaccia Rilevabile {} e definire un metodo chiamato release() e magari un flag chiamato rilasciato che è possibile utilizzare per impedire l'esecuzione di release() più di una volta. – asiby