Eliminar objetos en JavaScript
Estoy un poco confundido con el operador de JavaScript delete
. Tome el siguiente fragmento de código:
var obj = {
helloText: "Hello World!"
};
var foo = obj;
delete obj;
Después de que esta pieza de código ha sido ejecutada, obj
es null
, pero foo
todavía se refiere a un objeto exactamente como obj
. Supongo que este objeto es el mismo objeto que foo
señaló.
Esto me confunde, porque esperaba que escribir delete obj
borrara el objeto al que obj
apuntaba en la memoria, no solo la variable obj
.
Es esto porque JavaScript El Recolector de basura está trabajando sobre una base de retención / liberación, de modo que si no tuviera ninguna otra variable apuntando al objeto, sería eliminado de la memoria?
(Por cierto, mi prueba se hizo en Safari 4.)
Warning: Undefined property: agent_blog_content::$date_asked in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 32
Warning: Undefined property: agent_blog_content::$count_answers in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 52