I\'ve finally been curious enough to find out why javascript does its voodoo magic to learn why not all object references are created equal.
Given the example:
It looks to me that the difference is with b, you're reassigning the variable to a new object/value, while with d, you're modifying the existing object.
b
d