let's see an example:
let object = {
    a: {
        b: 1
    }
};
Now I want to modify the object.a from x:
s.1)
let x = object.a;
x = 2;
console.log(object);
result:
[object Object] {
  a: [object Object] {
    b: 1
  }
}
s.2
let x = object.a;
x = { b: 2 };
console.log(object);
result:
[object Object] {
  a: [object Object] {
    b: 1
  }
}
s.3
let x = object.a;
x.b = 2;
x.c = 2;
console.log(object);
result:
[object Object] {
  a: [object Object] {
    b: 2,
    c: 2
  }
}
Why s.1 and s.2 fail?
 
    