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