IT/Javascript

[Javascript] 매개변수 전달

DongChul 2016. 11. 11. 20:39

함수 매개변수는 모두 값으로 전달이 된다.

값이 원시 값이라면 변수 사이에서 원시 값을 복사하는것과 마찬가지이며 참조 값일 때도 변수 사이에서 참조 값을 복사하는 것과 마찬가지입니다.

변수는 값으로도, 참조로도 접근할 수 있지만 매개변수는 오직 값으로만 전달이 됩니다.

function addTen(num){

 num += 10;

 return num;

}

var count = 20;
var result = addTen(count);
alert(count); // 20
alert(result); // 30

위의 코드를 보면 값이 복사가 되어 전달이 되었다는것을 제대로 확인 할 수가 없으니 다른 예를 들어보겠습니다..

function setName(obj){
  obj.name = "Nicholas";
  obj = new Object();
  obj.name = "Greg";
}

var person = new Object();
setName(person);
alert(person.name); // "Nicholas"

함수의 값을 전달하였기 때문에 함수 내부에서 매개변수의 값이 바뀌었음에도 불구하고 원래 객체에 대한 참조를 그대로 유지한 것입니다.