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