Wie werden anonyme Objekte in JavaScript gesammelt?

8

Wenn ich ein Objekt erstelle, ohne es irgend etwas zuzuordnen, wann wird Javascript-Müll dieses Objekt sammeln? Hier ist ein Beispiel:

%Vor%

Wenn keine solche Speicherbereinigung durchgeführt wird, führt dies zu einem Speicherverlust?

%Vor%     
JoJo 07.05.2012, 19:33
quelle

4 Antworten

7

Wenn niemand im Bereich die anonymen Objekte referenziert, werden sie bei der nächsten Ausführung des GC Müll gesammelt.

Nachdem Console.info also beendet ist, sind sie bereit für die Müllsammlung. Wenn Sie festlegen, dass sich in-scope-Variablen auf sie beziehen, wird dies nicht der Fall sein.

    
MushinNoShin 07.05.2012, 19:41
quelle
4

Das Schöne an der Garbage-Collection ist, dass Sie dont nicht wissen, wann der Speicher zurückgewonnen wird, noch sollte es Sie interessieren (es sei denn, es passiert viel zu häufig).

In dieser Situation sollte die Laufzeit diese Date Instanzen wiederherstellen, aber nichts, was Sie tun, wird wirklich ändern, wie schnell es das tut. Dies führt auch NICHT zu einem Speicherverlust.

    
Tejs 07.05.2012 19:35
quelle
4

JavaScript führt GC (Garbage Collector) automatisch aus, um den von Strings, Objekten, Arrays und Funktionen belegten Speicher freizugeben, die nicht mehr verwendet werden.

  

Ein Schlüsselmerkmal der Garbage Collection ist, dass der Garbage Collector dies tun muss   in der Lage sein zu bestimmen, wann es sicher ist, Speicher wiederzugewinnen. Offensichtlich, es   darf niemals Werte zurückfordern, die noch verwendet werden und sammeln sollten   nur Werte, die nicht mehr erreichbar sind; das heißt, Werte, die nicht können   durch eine der Variablen, Objekteigenschaften oder bezeichnet werden   Array-Elemente im Programm.

Referenz: Hier.

    
The Alpha 07.05.2012 19:45
quelle
1

Dies ist eine nette Referenz zu JS garbare collection: Ссылка

    
dirkbonhomme 07.05.2012 19:52
quelle