본문 바로가기

Javascript/기초공부

[Javascript: 참조] 복제 / 참조 / 함수와 참조

복제

var a = 1;
var b = a; // 복제된 값이 b에 담긴다.
b = 2;
console.log(a); // 1

원시 데이터 타입은 이렇게 동작한다.

 

참조

var a = {'id':1};
var b = a; // 기존에 있는 {'id':1} 객체를 b도 참조하게 된다.
b.id = 2; // 그래서 참조하고 있는 값을 변경하면 이를 참조하는 애도 영향을 받게되는 것
console.log(a.id); // 2
var a = {'id':1};
var b = a;
b = {'id':2}; // 새로운 객체
console.log(a.id); // 1

객체는 이와 같이 동작한다.

 

함수와 참조

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