참조
복제
var a = 1;
var b = a;
b = 2;
console.log(a);
참조
var a = {'id':1};
var b = a;
b.id = 2;
console.log(a.id);
- 복제는 파일을 복사하는 것이라면, 참조는 심볼릭 링크(바로가기)를 만드는 것과 비슷하다. 심볼릭 링크로 접근하면 컴퓨터는 심볼릭 링크에 저장된 원본의 주소를 참조해서 원본의 위치를 알아내고 원본에 대한 작업을 한다. 즉 원본을 복제한 것이 아니라 원본 파일을 참조하고 있는 것이다.
- 덕분에 저장장치의 용향을 절약할 수 있고, 원본 파일을 사용하고 있느 모든 복제본이 동일한 내용을 유지할 수 있게 된다.
- 라이브러리도 일종의 참조이다. 라이브러리의 내용이 변경되면 이를 참조하고 있는 애플리케이션에도 내용이 반영되게 된다.
메소드의 매개변수 동작
var a = 1;
function func(b) {
b = 2;
}
func(a);
console.log(a);
- 참조 데이터 타입을 인자로 넘겼을 때: (1) 객체변경
var a = {'id': 1};
function func(b) {
b = {'id': 2};
}
console.log(a.id);
- 참조 데이터 타입을 인자로 넘겼을 때:(2) 속성 병경
- 속성이 소속된 객체를 대상으로 수정작업을 한 것이 된다.
var a = {'id':1};
function func(b) {
b.id = 2;
}
func(a);
console.log(a.id);