바깥에 있는 변수가 함수의 매개변수로 전달될 때 두 가지 경우가 있다.
변수의 값이 매개변수로 전달되는 passed by value와
변수가 가리키고 있는 주소가 매개변수에 전달되는 passed by reference이다.
이것은 자바스크립트라는 언어에서는 어떤 규칙으로 적용될까?
primitive type은 모두 passed by value
- number(정수, 실수, NaN 모두)
- string
- boolean
- null(값이 유효하지 않을 때의 유형)
- undefined(자료형을 지정하지 않았을 때의 유형)
Object는 passed by reference에 해당한다.
하지만 주의 해야할 것이 있다. 자바스크립트는 passed by reference로 a가 가리키고 있는 것 까지 바꾸지는 않는다.
passed by reference로 인해 이루어 지는 것은 outer scope에 있는 것으로 property를 바꾸는 것이다.
퀴즈
정답: a = 1; b = {'moo':3}