Je suis un peu confus avec du JavaScript delete
de l'opérateur. Prendre le morceau de code suivant:
var obj = {
helloText: "Hello World!"
};
var foo = obj;
delete obj;
Après ce morceau de code a été exécuté, obj
est null
, mais foo
fait toujours référence à un objet exactement comme obj
. Je devine que cet objet est le même objet que l' foo
pointé.
Cela me confond, parce que je m'attendais à ce que l'écriture delete obj
a supprimé l'objet qu' obj
a été pointant vers dans la mémoire-et pas seulement la variable obj
.
Est-ce à cause du JavaScript Garbage Collector est de travailler sur un conserver/version de base, de sorte que si je n'avais pas d'autres variables pointant vers l'objet, il allait être supprimé de la mémoire?
(En passant, mon test a été effectué dans Safari 4.)