-
[자바스크립트] call by value , call by referencejavascript 2021. 5. 22. 18:32반응형
일단 parameter 와 argument 의 차이
argument > 실제 사용되는 인자
parameter > 형식 매개변수
선언부분에서는 parameter 라고 하고 호출부분에서는 argument 라고 한다.
call by value , call by reference
정의 : 호출방식에 따라서 인자가 평가되는 방식이 달라진다
함수에 인자로 어떤것이 들어오느냐에 따라
실행되는 방법에 차이가 있다.
원시형자료형이 인자로 들어오는지 ? 아니면 참조형자료형이 들어오는지 ?
에 따라서 call by value 방식으로 함수가 실행될지 call by reference 방식으로 함수가 실행되는지 결정되는 것이다.
다시 정리하면 위에서 argument 에 해당하는게 참조형 자료다 그러면 call by reference(들어온 내용 그대로 집어넣음)
원시형 자료다 그러면 call by value(값만 복사해서 집어넣음)
+ call by sharing
call by reference 에 추가되는 개념 이다 라고 생각한다.
즉 참조형 자료가 변수로 들어왔을때 고려해야 하는 내용인데
음... 객체가 인자로 들어갔으니까 call by reference 값이 변경되면 obj 가 변경이 되야 할꺼 같은데
변경 되지 않고 call by value 처럼 작동한것을 확인할수 있다.
어떤 경우에 이렇게 작동할까 ?
일단 배열이나 객체가 인자로 들어가면 우리는 해당 참조를 이용하게 되는데 그 참조를 사용해 요소나 속성등을 수정할수 가 있지만
새로운 참조로 덮어 씌우는 경우에는 새로운 메모리에 참조되어 기존의 객체에는 영향을 안준다고 한다.
이러한 경우 call by sharing 이라고 한다.
참고했습니다~:https://code-masterjung.tistory.com/32
'javascript' 카테고리의 다른 글
urlSearchParams (0) 2021.12.27 [자바스크립트] target 과 currentTarget 차이 (0) 2021.06.11 [자바스크립트]데이터 자료형 에 대하여 (0) 2021.05.22 [javascript] deep copy / shallow copy (0) 2021.05.10 [자바스크립트] try catch 문을 통한 에러 처리 (0) 2021.05.03