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 ??

Respuestas a la pregunta(5)

Su respuesta a la pregunta