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