Why when I change a specific [key, value] pair of a copy of a class property, the original property also changes?
class Store
{
constructor(data) {
this.data = data;
}
getData() {
return this.data;
}
overwrite(data)
{
let dataCopy = this.getData();
dataCopy.x = data.x;
dataCopy.y = data.y;
return dataCopy;
}
}
const store = new Store({x : 50, y : 30});
console.log(store.getData()); // {x: 50, y: 30}
console.log(store.overwrite({x : 5, y : 10})); // {x: 5, y: 10}
console.log(store.getData()); // {x: 5, y: 10} (Why??)