var a = 1; var b = a; b = 2; console.log(a); // 1 위 코드에서 b = a이고 b의 값을 2로 정의했는데 a의 값이 1이 나온 이유는 a = 1로 정의를 하고 b = a 를 하였을때 b는 a의 값 본체에 연결되어 있는것이 아니라 b는 a의 값과 똑같은 값에 연결되어 있는것이다. 한마디로 b는 a의 값을 복제한 값을 대입하는 것이다. 이러한 개념을 복제라고 하는데 복제는 a = 1; 처럼 원시데이터 타입일때 일어난다. 원시데이터가 아닌 다른 데이터 타입, 즉 객체에서는 복제가 발생하지 않는다. var a = {'id':1}; var b = a; b.id = 2; console.log(a.id); // 2 여기서 a를 객체로 정의하였고 b = a를 했을경우, a의 값이 ..