가변인자함수



가변인자함수는 매개변수의 개수에 따라 서로 다른 동작을 하는 함수이다. 예를 들면 Array()함수와 같은 것들이다.


arguments 변수

자바스크립트의 모든 함수는 내부에 argument라는 변수를 가지고 있다.

이 변수는 매개변수의 배열이다. 

즉, 함수를 호출할때 전달된 매개변수가 함수 내부에서 arguments라는 배열에 저장이 된다.


<script>
function sumAll() {
var output = 0;
for(let i of arguments) {
output += i;
}
return output
}
alert(sumAll(1, 2, 3, 4, 5, 6, 7, 8, 9, 10));
</script>


위의 sumAll 함수에는 매개변수가 정의되어있지 않지만, 전달된 매개변수를 arguments변수를 이용해서 사용하고 있다.


arguments는 배열이기 때문에 length키워드를 이용해 길이를 얻을 수가 있다. 


이 길이를 이용하면 매개변수의 개수에 따라서 원하는 동작을 하게 만들 수 있다.


<script>
function func() {

if(arguments.length == 0) {
//매개변수가 없을 때 실행코드
} else if(arguments.length == 1) {
//매개변수가 한개 일 때 실행코드
} else if(arguments.length == 2) {
//매개변수가 두개 일 때 실행코드
}
}
</script>


이렇게 매개변수의 개수인 arguments의 길이에 따라 동작하기를 원하는 코드를 적어주면 된다.

+ Recent posts