0

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

0 Answers0