2 All
не хочеться поднимать флейм, но в JS переменные это и есть ссылки на объекты.
то есть new Object () создает объект, а var a = определяет а локальном пространстве имен переменную a и присваивает ей ссылку на созданный в правой части выражения объект.
дальше создается переменная b и та как a содержит ссылку на объект, то в b записывается ссылка на тот же объект. то есть ссылка в b пишеться не на a (a потом вообще не при делах оказывается), а на объект, ссылку на который содержит a (простите за тавтологию).
а вот в 3-й строчке переменной a присваивается "простой тип", то есть одна из ссылок на объект умирает, но объект живет, так как есть ссылка из b.
все это происходит из того, что в JS нету классов, а есть только объекты. и созданный конструктором объект существует пока на него есть ссылки. с ссылками можно делать самые разные вещи. например можно создать в одном документе объект, ссылку на него передать в другой, а потом первый документ убить. при этом ссылка останется жить и даже данные внутри того объекта будут доступны, но методы выполнить будет нельзя (по крайней мере в ИЕ, в других я такой изврат не проверял)
ЗЫ Не надо писать на JS как на PHP. Из этого ничего не выйдет - уж больно разные объектные модели у них.