자바스크립트의 자료형 (문자, 숫자, array, object 등)은 자료형을 크게 2개로 분류
1) Primitive data type
2) Reference data type
var name = 'Nam';
var age = 20;
var 사람 = { name : 'Nam' };
// 변수에 { name : 'Nam' } 이 오브젝트 데이터가 저장된게 아님
// { name : 'Nam' } 값의 위치를 가리키는 화살표가 '사람' 변수에 저장된 것
그래서,
Reference 타입 자료형인 object를 복사하면
var 사람1 = { name : '남' };
var 사람2 = 사람;
사람1.name = '김';
사람2 변수를 출력해보면 { name : '남' } 데이터가 출력될 것이라고 생각할 수 있는데
console.log(사람1); // { name : '김' }
console.log(사람2); // { name : '김' }
사람2 변수의 값을 수정하지 않았지만 사람1과 같은 데이터가 출력된다
=> 사람2 변수에는
사람1 변수의 데이터를 가리키는 화살표 가 저장되어 있기 때문
추가) 데이터가 같다고해서 두 변수를 비교하면 false
// 서로 다른 화살표를 가짐
var 이름1 = { name : '김' };
var 이름2 = { name : '김' };
출처 : 코딩애플 Javascript 강의 영상