구어체로 설명하는 다이어리

Call by Value와 Call by Reference 본문

스터디/프로그래밍 기초

Call by Value와 Call by Reference

씨씨상 2024. 8. 16. 09:40

 

 

Call by Value (값에 의한 호출)와 Call by Reference (참조에 의한 호출)
이 두 가지는 함수가 인자를 전달하고 처리하는 방식을 말합니다.

 

 

 

Call by Value

 

 

값에 의한 호출은 원시 타입에서 나타나며,
함수의 인자로 전달한 값을 복사하여 사용합니다.

무슨 이야기인지 코드를 보면서 알아봅시다.

 

function myFunction(a) {
    a = a + 100;
    console.log(a); //- 101
}

let x = 1;
myFunction(x);
console.log(x); //- 1

 

이처럼 myfunction 함수에서 매개변수 a로 받을 때 인자로 받은 x의 값을 복사해서 사용합니다.
원본 값의 복사본을 수정하는 것이기에 myFunction 함수 안에서 값을 얼마나 변경하든 함수 외부의 값에는 변동이 없습니다.

 

 

 

Call by Reference

 

 

참조에 의한 호출은 참조 타입에서 나타나며,

함수의 인자로 전달한 값의 주소값을 사용합니다.

 

문장으로 보면 어려우니 역시 코드를 보면서 알아봅시다.

 

function myFunction(aList) {
    aList[0] = 5;
    console.log(aList); //- [5, 2, 3, 4, 5]
}

let xList = [1, 2, 3, 4, 5];
myFunction(xList);
console.log(xList); //- [5, 2, 3, 4, 5]

 

이처럼 myFunction 함수에서 매개변수 aList로 받을 때 인자로 받은 xList의 값을 참조해서 사용합니다.
이 경우 함수 내부에서 매개변수 aList의 값을 변경하면 원본 변수 xList의 값도 변경됩니다.

 

 

 

 

 

참고자료

참고자료1

참고자료2

'스터디 > 프로그래밍 기초' 카테고리의 다른 글

type과 interface  (2) 2024.11.08
undefined와 null에 관하여  (0) 2024.11.07
React에서 렌더링을 두 번 하는 이유  (2) 2024.08.26