Cópia do objeto JS por valor vs cópia por referência

Eu estava jogando com console chrome e notei algo que eu não conseguia entender. Eu sei que em JS variáveis ​​são copiadas por valor e objetos são copiados por referência. Abaixo o código funciona bem como o esperado, que gera 2 e comprova que os objetos JS funcionam como referência:

var objA = {a: 1};
var objB = objA;
objA.a = 2; 
objB.a; // 2

No entanto, este código não funciona como deveria. Eu esperava que objB.a saísse2 mas dá1 em vez de. 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 ??

questionAnswers(5)

yourAnswerToTheQuestion