Reference data type
그냥 문자와 숫자는 Primitive data type이다.
var a = 'dddd';
var b = 1234;
변수의 값이 그대로 저장된다.
array나 object 보면
var array = [1, 2, 3];
var object = {name: 'kim'}
값이 그대로 저장되지 않고 reference가 저장된다.
Primitive data type을 복사하면
name1 = 'kim';
name2 = name1;
name1 = 'lee'
name1;
name2;
이때 name2을 부르면 ‘kim’이 그대로 출력된다.
하지만 reference type에선
var object1 = {name: 'kim'};
var object2 = object1;
object1.name = 'lee'
object2.name
이때 object2.name을 보면 ‘lee’가 출력된다.
오브젝트를 변경해주는 함수를 만들었다고 하자.
var name1 = {name: 'kim};
function change(obj){
obj.name = 'park';
}
change(name);
name 이 ‘park’로 바뀌어 출력된다.
var name1 = {name: 'kim};
function change(obj){
obj = {name: 'park'}
}
change(name);
이때 이렇게 할당하면 변화가 없다. 새로운 obj라는 object를 만드는것으로 원래의 object는 변하지 않는다.