var a= 12; var a2 = a; a = 12; a2 = 12; a === a2 -> true //a2값에 변화를 줘보자 a2 = 14; a = 12 ** a === a2 -> false **
- 일반변수의 값(a)을 복사해서 새로운 변수(a2)에 선언하고, 새로운 변수(a2)의 값을 바꾸면 새로운 변수(a2)의 값은 변하지만, 복사해온 변수(a)의 값은 변하지 않는다.
var people = {name : "혜원", hight : 160}; var p2 = people; p2 === people // p2값에 변화를 줘보자 p2.name = "동윤"; p2 = {name : "동윤", hight : 160} peple = {name : "동윤", hight : 160}
- 참조변수는 복사해온 객체의 속성도 바꿔버림. 둘이 같이 바뀐다
- 그럼 새로운 객체를 만들땐 어떻게 해야 하는가?
- 직접 생성하거나, 객체 생성자를 이용한 경우 new를 사용해서 생성한다.