반응형
exports와 module.exports를 찾아보던 중
javascript의 call by value와 call by reference에 대해 알게 되었다.
javascript에서 변수를 넘기면 call by value이고,
객체를 넘기면 call by reference가 된다.
다음과 같이 예를 들 수 있다.
예를들어 var a=1;
var b=a; 를 할때 이것은 call by value이다 따라서 값을 복사하게 되고 a와 b각각 1이라는 값을 가지고 있다. 따라서 b를 변경해도 a의 값이 변하지 않는다.
var c = {age:11};
var d = c; 이 경우 call by reference가 일어난다. 따라서 d는 c의 값을 참조하고 있기 때문에 d.age=13; 처럼 값을 변경할 경우 c의 값 또한 변경된다.
추가
call by reference는 c언어에서 pointer를 자주 써본 사람이면 쉽게 이해가 갈 것입니다.