티스토리 뷰
함수 매개변수는 모두 값으로 전달이 된다.
값이 원시 값이라면 변수 사이에서 원시 값을 복사하는것과 마찬가지이며 참조 값일 때도 변수 사이에서 참조 값을 복사하는 것과 마찬가지입니다.
변수는 값으로도, 참조로도 접근할 수 있지만 매개변수는 오직 값으로만 전달이 됩니다.
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"
함수의 값을 전달하였기 때문에 함수 내부에서 매개변수의 값이 바뀌었음에도 불구하고 원래 객체에 대한 참조를 그대로 유지한 것입니다.
'IT > Javascript' 카테고리의 다른 글
[Javascript] Function (0) | 2016.11.14 |
---|---|
[Javascript] 반복메서드 (0) | 2016.11.13 |
[Javascript] block level scope (0) | 2016.11.11 |
[Javascript] parseInt함수 (0) | 2016.11.10 |
[Javascript] 숫자변환 (0) | 2016.11.09 |