Objeto JS copia por valor vs copia por referencia
Estaba jugando con la consola de cromo y noté algo que no pude entender. Sé que en JS las variables se copian por valor y los objetos se copian por referencia. El código siguiente funciona bien como se esperaba, lo que da como resultado 2 y prueba que los objetos JS funcionan como referencia:
var objA = {a: 1};
var objB = objA;
objA.a = 2;
objB.a; // 2
Sin embargo, este código no funciona como debería. Esperaba que objB.a produjera2
pero da1
en lugar. ¿Por qué?
var objA = {a: 1};
var objB = objA;
objA = {a: 2}; //Assigned whole object here instead property.
objB.a; //1 - Shouldn't this be 2 ??