molily: Closures und Garbage Collection

Beitrag lesen

Mit var innerhalb einer Funktion definierte Werte bleiben nur bis zum Abschluß der Funktion im Speicher und werden danach vom Garbage Collector eingesammelt. Ein myvar = undefined überschreibt nicht den Speicherbereich, sondern nur den Inhalt, bis die Variable ganz freigegeben wird.

Naja, aber bei Closures kehrt sich die Geschichte um. In dessen Scope wird eine Referenz auf die Variable angelegt, und wenn die innere Funktion die äußere überlebt, dann kann wird sie nicht vom GC gelöscht, solange die innere Funktion existiert. In dem Fall hilft m.W. das überschreiben - wenn ich schon nicht das Eingeschlossensein ändern kann, dann kann ich damit zumindest die Datenmenge reduzieren.

Mathias