I solved it myself for the time being. The original value has only 2 sub-properties. I reformed a new object with the properties from a
and then assigned it to b
. Now my event handler updates only b
, and my original a
stays as it is.
var a = { key1: 'value1', key2: 'value2' },
b = a;
$('#revert').on('click', function(e){
//FAIL!
b = a;
//WIN
b = { key1: a.key1, key2: a.key2 };
});
This works fine. I have not changed a single line anywhere in my code except for the above, and it works just how I wanted it to. So, trust me, nothing else was updating a
.