Ich bin ein wenig verwirrt mit JavaScript's delete
Betreiber. Nehmen Sie das folgende Stück Code:
var obj = {
helloText: "Hello World!"
};
var foo = obj;
delete obj;
Nachdem dieser Code ausgeführt wurde, obj
es null
aber foo
bezieht sich immer noch auf ein Objekt genau wie obj
. Ich vermute, dass dieses Objekt dasselbe ist, das foo
wies auf.
Das verwirrt mich, denn ich hatte erwartet, dass das Schreiben delete obj
das Objekt gelöscht, das obj
auf die im Speicher verwiesen wurde - nicht nur auf die Variable obj
.
Liegt das daran, dass der Garbage Collector von JavaScript auf einer Retain/Release-Basis arbeitet, so dass, wenn ich keine anderen Variablen hätte, die auf das Objekt zeigen, es würde aus dem Gedächtnis gelöscht werden?
(Meine Tests wurden übrigens mit Safari 4 durchgeführt).