복제 & 참조

1. 복제(Copy and Paste => 각각 다른 file)

데이터형이 숫자! = 원시형(기본) 데이터타입 ≠ 객체

var a = 1; //데이터형이 숫자
var b = a; //이때 복제가능한 것은 Primitive type이기 때문
b = 2;     //값을 변경한것은 b이기 때문에 변수 a에 담겨있는 값은 그대로

console.log(a); // 1 ← 변수b의 값에 변수a의 값이 복제됨

2. 참조(Reference)

데이터형이 객체! = 참조 데이터타입

var a = {'id':1}; //데이터형이 객체
var b = a;
b.id = 2;

console.log(a.id);  // 2  
var a = {'id':1};
var b = a;
b = {'id':2}; //b라는 객체가 새로 생성된 것이기 때문에 a에 영향을 주지 않음

console.log(a.id); //1 

3. 함수와 참조

3-1. 복제와 같은 맥락

var a = 1;
function func(b){ //b = a
    b = 2;
}
func(a);

console.log(a); //1

3-2. 참조와 같은 맥락

3-2-1. 영향을 미치는

var a = {'id':1};
function func(b){ //b = a
    b.id = 2;
}
func(a);

console.log(a.id); // 2

3-2-2. 영향을 주지 않는

var a = {'id':1};
function func(b){ //b = a
    b = {'id':2};
}
func(a);

console.log(a.id); // 1
//b라는 객체가 새로 생성된 것이기 때문에 a에 영향을 주지 않음

Last updated