
참조와 복사 메커니즘
값을 변수로 할당할 때 변수와 변수사이에 그 값이 이동하는 메커니즘
- 기본 데이터 타입들은 변수에 들어갈 때 실제 값이 들어간다. (복사메커니즘)
let a = 10; let b = a; b = 20; <br> 위에 코드에 b변수에 a값을 넣을 때 값이 그대로 복사 되어 들어간다. b를 20으로 바꿔도 a에는 전혀 영향을 미치지 않는다.
- 객체 값은 복사되지 않고 참조 된다.
즉, 객체자체가 들어가는게 아니라 객체는 한곳에 저장되어있고, 그 저장되어있는 위치값만 변수에 기록된다. (참조메커니즘)let o = { isLoading:false } let o2 = o; o2.isLoading = true; <br> 위에 코드에 o2에 o객체를 할당 하고 o2의 isLoading을 true로 바꾸면 o와 o2의 isLoading이 true로 바뀐다.let a = { isLoading : false }; function foo(a) { a.isLoading = true; } foo(a); <br> 객체를 함수에 넣을 때도 마찬가지로 foo(a) 함수를 호출해서 실행하면 let a 의 isLoading속성도 true로 바뀐다는걸 알 수 있다.