Глобальная
a и локальная
а ссылаются на один и тот же объект. Вы переопределяете только локальную
a из скоупа функции
b.
Ваш код для наглядности можно переписать так:
var a = {};
+function b(c) {
console.log(a === c); // true
c.a = 10;
c = null;
console.log(a === c); // false
}(a);
console.log(a); // { a: 10 }
Тут
а и
c ссылки которые ссылаются на один и тот же объект. Вы переопределили
c,
а продолжает ссылаться на объект.
Почитайте.