var a = {'id' : 'apple'};
var b = a;
b.id = 'banana';
console.log(a.id);
즉, 복제가 되지 않고 참조가 되고 있는 것
a = 1;
: 데이터형이 숫자a = {'id':1};
: 데이터형이 객체숫자는 원시 데이터형이고 객체는 참조 데이터형이다.
기본(원시) 데이터형은 복제되지만 참조 데이터형은 참조된다.
모든 객체는 참조 데이터형이다.
var a = 1;
function func(b){
b = 2;
return b;
}
func(a);
console.log(a); // 1
a = 1
b = a
-> b = 1'
: 복제가 일어남b = 2
-> b = 2
, a = 1
var a = {'id':1};
function func(b){
b = {'id':2}; // 객체를 새로 선언한 것
}
func(a);
console.log(a.id); // 1
a = {id : 1}
: 객체를 닮고 있음b(linked with a) = a
-> b(unlinked with a) = {id : 2}
: b는 새로운 객체를 만든 것a = {id : 1}
, b = {id : 2}
var a = {'id':1};
function func(b){
b.id = 2; // 입력인자로 받은 b의 일부를 건드린 것 == 레퍼런스로 넘긴 것
}
func(a);
console.log(a.id); // 2