Any singleton is passed as reference when it comes to javascript.
var b = { name: 'Ricardo' } var a = b; //updating the property name of b.name to something else will cause the a.b to be updated. This is what happens when when we use factories.
Whenever we try to bind an object to other object properties the reference is lost and changing values wont be reflected anymore without our intervention
var b = { name: 'Ricardo' } var a = b; var c = b.name; //c is now 'Ricardo'; c = 'Maria'; // b.name is still Ricardo // a.name is still Ricardo