javascript - Är det möjligt att implementera en destruktor för en TypeScript-klass?


Jag har en viss objektinstans på serversidan och dess representation på klientsidan. När jag skapar en instans på klienten, säger dess konstruktor till servern att det behöver skapas ett associerat objekt. Och när detta objekt (på klientsidan) går ur scope, vill jag säga till servern att det associerade objektet ska tas bort. Hur kan jag göra det utan att manuellt anropa Destroy()-metoden varje gång?

Svar #1

Som du vet har Javascript en skräpsamlare. Så du måste se till att objektet är berättigat till skräpsamling.

Om du vill berätta för ditt objekt att du är klar med det och att det specifikt ska frigöra eventuella händelselyssnare det har, kan du bara skapa en vanlig metod för att göra det.

Du kan namnge metoden release() eller deregister() eller vad du vill. Idén är att säga åt objektet att koppla bort sig från allt annat det är kopplat till (avregistrera händelselyssnare, rensa referenser till externa objekt, etc...). Denna metod bör kallas manuellt vid lämplig tidpunkt.

Du kan läsa mer om destruktörparadigmet i detta ämne

Svar #2

Det besvaras möjligen här: Finns det destruktor i TypeScript? Eftersom JS använder garbage collector finns det inget sätt att förutsäga när ett objekt kommer att förstöras. Så inga destruktorer.

Relaterade artiklar