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는 변하지 않는다.