본문 바로가기

카테고리 없음

[JavaScript_002] passed by value, passed by reference

바깥에 있는 변수가 함수의 매개변수로 전달될 때 두 가지 경우가 있다.

 

변수의 값이 매개변수로 전달되는 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}