Странное поведение замыканий JS. Где ошибка?
obj - это ссылка на объект. Вы передали эту ссылку в функцию test (при этом возникла ее копия ob) и на ob замкнули анонимную функцию. Когда вы обнулили ссылку obj = null - с самим объектом ничего не стало и ob продолжает на него ссылаться.
Чтобы лучше понять что происходит, следует уяснить, что Сам объект не принадлежит ни одной переменной, в них хранится лишь ссылка на него. А сам он прячется где-то в памяти браузера.
-var ob = obj; //Скопировали ссылку
Таким образом, когда происходит изменение значения переменной, ссылающейся на объект, это никак на него не влияет.var obj = {1:0, 2:10}, ob = obj;

obj = 228;
//obj больше не ссылается на объект, теперь это просто число.
//А вот ob так и продолжает это делать
console.log(ob);