Was ist die Lebensdauer einer Variablen in JavaScript, die mit "var" deklariert wird? Ich bin mir sicher, es ist definitiv nicht erwartungsgemäß.
%Vor% Wie und wann speichert JavaScript Müll die Variable a
? Da a
ein Teil des Abschlusses der inneren Funktion ist, sollte es im Idealfall niemals Müll sammeln, da die innere Funktion fun
als Verweis auf einen externen Kontext übergeben werden kann. Daher sollte fun
immer noch auf a
vom externen Kontext zugreifen können.
Wenn mein Verständnis richtig ist, wie geschieht dann die Speicherbereinigung und wie stellt es sicher, dass genügend Speicherplatz vorhanden ist, da alle Variablen im Speicher verbleiben, bis die Ausführung des Programms möglicherweise nicht haltbar ist?
Die ECMAScript-Spezifikation legt nicht fest, wie der Garbage Collector funktionieren soll. Sie besagt nur, dass wenn ein Bezeichner erreichbar ist (durch einen direkten Zeiger oder eine Schließung), er nicht GCed sein sollte.
Sehen Sie sich dieser Artikel über Bezeichnerauflösung, Closures, Bereichsverkettung und Garbage Collection in ECMAScript.
Hoffe es hilft
'a' wird nicht Müll gesammelt werden, solange es externe Verweise auf 'Spaß' gibt. Der Browser stellt sicher, dass genügend Arbeitsspeicher vorhanden ist, indem nach mehr Arbeitsspeicher vom Betriebssystem gefragt wird.
Tags und Links javascript garbage-collection variables lifetime