복제
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
'Javascript > 기초공부' 카테고리의 다른 글
[Javascript: 데이터 타입] 원시 데이터 타입 / 래퍼 객체(Wrapper object) (0) | 2020.03.19 |
---|---|
[Javascript: Object] Object API / Object 확장 / Object 확장의 위험 (0) | 2020.03.19 |
[Javascript: 표준 내장 객체] 표준 내장 객체란? / 배열의 확장 (0) | 2020.03.19 |
[Javascript: 상속(Inheritance)] 상속의 사용법 / prototype (0) | 2020.03.19 |
[Javascript: this] 전역객체 / 함수, 메소드, 생성자와 this / apply와 call / apply와 this (0) | 2020.03.18 |