class Piece{  

...

spawn(){ 

...

x;

y;

...

}


const KEY = {

    LEFT: 37, 

    RIGHT: 39,  

    DOWN: 40 

}

Object.freeze(KEY);                                                                   


const moves = {

    [KEY.LEFT]:  p => ({ ...p, x: p.x - 1 }), 

    [KEY.RIGHT]:  p => ({ ...p, x: p.x + 1 }),

    [KEY.DOWN]:  p => ({ ...p, y: p.y + 1 })

}


let p = moves[event.keyCode](board.piece);




원래는 각자 다른 파일에 흩어져있는데

내가 보기에 중요한 부분만 모음


[제일 이해 안가는 부분 1] -> let p = moves[event.keyCode](board.piece);

어케 호출하는거지


[제일 이해 안가는 부분 2 ]-> ({ ...p, y: p.y + 1 })

일단 저런 익명함수에 아무것도 없으면 그냥 거기 있는걸 반환한다고 생각하면 된다는데 

...p, y: p.y + 1 

이걸 반환하면 뭔 의미인걸까

...연산자는 배열을 펼쳐서 반환하는거라는데 잘 모르겠네... 이해가 잘 안간다