참조

복제

두개는 연결되지 않은 별도의 데이터다.

var a = 1;
var b = a;
b = a;
console.log(a); //1

별도의 데이터로 만들어서 a 따로 b 따로가 존재하는 거다 .

a에는 어떠한 영향도 안받는거다.

원시데이터 타입일 때 가능하다.

참조

바로가기

var a = {'id':1};
var b = a;
b.id = 2;

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

a와 b는 같은 곳을 바라보고 있기 때문이다.

var a = {'id':1};
var b = a;
b = {'id':2};

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

b = {'id':2}; 새로운 객체를 생성한거다.

data type이 무엇인지가 중요한거다.

함수와 참조

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

변수 a의 값을 변경한게 아니라 b에 a값을 담은것이다. 그래서 1 그리고 a와 b는 둘다 primitive type이라 a와 b라는 독립적인 공간이 생긴다.

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

똑같은 객체를 바라보고 있었는데 새로운 객체를 정의하여 a와 b관계가 끊키게 된다.

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

a와 b가 같은곳을 바라보기 때문에 당연하다. 'ㅁ' /

Last updated

Was this helpful?