[자바스크립트] call by value , call by reference
일단 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] 평가 전략 - Call by value와 Call by reference
7 Data Types call by value와 call by reference에 대해 다루기 전에 7가지 데이터 유형을 먼저 설명하려고 한다. primitive data type - number, string, boolean, undefined, null Objects - Array, Object 여..
code-masterjung.tistory.com