본문 바로가기
DOM, Script

자바스크립트 함수인자 call by value, call by reference

by eqzero 2008. 12. 11.

자바스크립트의 함수인자를 처리함에 있어
문자열, 부울, 숫자등과 같은 원형 데이터를 값(call by value)을 함수에 인자로 넘겨줄수있다.
특이점은 함수내에서 값을 바꾸더라도 호출 프로그램에는 반영되지 않는다

하지만 객체는 다르다. 객체는 참조(call by reference)로 넘겨주므로 함수내에서 변경하면 호출 프로그램에도 반영된다.

아래 샘플 코드를 보자.

<script type="text/javascript">
     var str = "Original Value";
     var arr = new Array("one", "two");

     function changeValue(strValue , arrObject){
        strValue = "Change Value";
        arrObject[arrObject.length] = "three";
    }    
     changeValue(str, arr);
     document.writeln("str : " + str + "<br>");
     document.writeln("arr : " + arr);
</script>

결과는 아래와 같다.

str : Original Value
arr : one,two,three