출처: https://ko.javascript.info/object-methods
#객체
객체와 원시타입의 근본적인 차이: 객체는 '참조에 의해' 저장되고 복사된다. 원시값(문자열, 숫자, 불린 값)은 '값 그대로' 저장, 할당되고 복사됨.
즉, 변수엔 객체가 그대로 저장되는 것이 아니라, 객체가 저장되어있는 '메모리 주소’인 객체에 대한 '참조 값’이 저장된다.
얕은 복사 - Object.assign. 그러나 객체 안에 또 다른 객체가 있으면 완전하게 복사할 수 없음
깊은 복사 - lodash 라이브러리의 cloneDeep 함수. 객체 안에 또 다른 객체가 들어있어도 완전하게 복사할 수 있다.
#this
매서드 내부에서 this 키워드를 사용하면 객체에 접근할 수 있다.
this는 다른 프로그래밍 언어의 this와 동작 방식이 다른데, 자바스크립트에선 모든 함수에 this를 사용할 수 있고 this 값은 런타임 시에 결정된다. 즉, 함수가 호출되기 전까지는 this에 값이 할당되지 않는다. 함수를 객체 프로퍼티에 저장해 object.method()같이 ‘메서드’ 형태로 호출하면 this는 object를 참조한다.