가변인자함수
가변인자함수는 매개변수의 개수에 따라 서로 다른 동작을 하는 함수이다. 예를 들면 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의 길이에 따라 동작하기를 원하는 코드를 적어주면 된다.
'개발 > JavaScript' 카테고리의 다른 글
[JavaScript] 콜백함수 (0) | 2018.06.21 |
---|---|
[JavaScript] 내부함수와 자기호출함수 (0) | 2018.06.20 |
[JavaScript] 자바스크립트 함수의 매개변수 (0) | 2018.06.20 |
[JavaScript] 익명 함수와 선언적 함수 (0) | 2018.06.20 |
[JavaScript] for of 반복문 (0) | 2018.06.20 |