프로토타입은 객체가 가진 기본 속성과 메서드를 정의하는 객체입니다. 프로토타입에 정의된 이런 속성과 메서드가 타입을 타입답게 만들고, 클래스가 나오기 전에는 프로토타입을 통해 직접 메서드를 만들곤 했습니다.
참조에 의한 복사가 일어나는 이유는 값 자체를 복사해주는 게 아니라 값이 들어있는 메모리 주소를 복사해서 주기 때문입니다. 때문에 객체를 복사하면 서로 같은 메모리 주소를 가리키기 때문에 한쪽이 값을 바꾸면 다른 쪽이 보여주는 값도 바뀌게 됩니다. 그래서 오류가 나는 것인데, 이를 해결하기 위해 깊은 복사를 통해 값으로 복사하는 방법으로 대표적으로는 JSON.stringify()를 통해 객체를 문자열로 바꿔서 복사하는 방법이 있습니다.
새로운 api를 사용해 익숙해지는 데 시간이 조금 걸렸지만, 일단 가져와서 기능은 작동하도록 했다. 그러나 완벽히 이해하면서 코드를 작성한 것이 아니기 때문에, 시간이 될 때 코드를 뜯어볼 필요가 있을 것 같다.