in java script Objects are passed around by reference. They are never copied.
var a = {n:1}
so earlier a has reference of an object which has a property n=1
on second statement
a.x = a = {n:2}
a.x has added a property x on previous object whose value is an object with property n = 2
the same statement assign a the reference of new object.