[javascript] 11-02 자바스크립트 스터디 - 객체지향-참조,함수와참조

2021-11-02

11-02 [객체지향-참조]

전자화된 시스템엔 복제와 참조라는 매커니즘이 존재함

복제

복제와 참조는 다름. 복제본과 원본은 서로 수정의 영향을 받지 않는다

복제는 ‘원시데이터타입’일 때 이루어짐

참조

예시: 심볼릭 링크 (바로가기)

‘객체데이터타입’일 때 이루어지는 방법

객체는 똑같은 객체를 각각의 변수들이 바라보게 됌.

[객체지향-함수와 참조]

함수의 전달인자가 원시데이터인지 객체인지 타입에 따라서 동작이 다르게 돌아감.

var a = 1;
function func(b){
	b = 2; // 함수 안에서만 b의 값 (a의 값을 바꿈) 복제를 하고 바꾸기 때문에 원형 a변수
}
func(a);
console.log(a); // 1
var a = {'id': 1};
function func(b){
	b = {'id': 2}; // 함수 안에서 새롭게 객체생성 후 할당하는거기 때문에, 
}
func(a);
console.log(a.id); // 1 // a 객체를 참조하고있는 변수에는 영향이 안감
var a = {'id': 1};
function func(b){
	b.id = 2; // b에 할당된 a는 데이터타입이 객체이기 때문에 참조형태로 동작함
}
func(a);
console.log(a.id); // 2 // 같은 객체를 참조하고 있기 때문에 함수 내부에서 a.id값을 바꾼게 적용됌