Hi I am playing around with building a small game in JS, and I am getting an unforeseen error when animating 2 objects.
I have a class for sprites defined as such:
class Sprite {
constructor({position, image_src}){
    this.position = position;
    this.image = new Image();
    this.image.src = image_src;
}
draw(){
    c.drawImage( 
        this.image, 
        this.position.x - this.image.width / 2, 
        this.position.y - this.image.height / 2
       );
}
}
I create two new instances like this:
   const center = {x: canvas.width/2, y: canvas.heigth/2} 
const background = new Sprite({
    position: center,
    image_src: './Assets/Images/UV.png', 
})
    const player = new Sprite({
        position: center,
        image_src: './Assets/Images/playerDown.png',
    })
and I animate its position with wasd as such
function animate(){
window.requestAnimationFrame(animate);
background.draw(); 
player.draw();
if(keys.up.pressed){ background.position.y += 3)}
else if... 
What i want to happen is the background moving, and NOT the player. What actually happens (and in my mind shouldn't) is that both background and player get moved. I tried some debugging, and I noticed that my const object "center" changes, and thus with it any Sprite that uses it in its constructor.
I can easily work around it, by using two different objects in the constructor, but it bug my mind WHY does it work like that, and HOW should I make it work.
Can anyone help?
