함수에는 arguments라는 변수에 담신 유사 배열이 있습니다. 이 배열에는 함수를 호출 할때 입력한 인자가 담겨있다. 아래 예제를 봅니다.
function sum(){
let i, _sum = 0;
for(i = 0; i < arguments.length; i++){
document.write(i+' : '+arguments[i]+'<br />');
_sum += arguments[i];
}
return _sum;
}
document.write('result : ' + sum(1,2,3,4));
예를 들면 function a(_arg1){ ------_arg는 매개변수이고 (parameter)
}
a(1) 1이 인자입니다.
다시 돌아와서 sum()매개변수가 없거나 인자의값이 여러개 넣으더라도 에러가 발생하지않습니다.
저기 arguments라는 변수에 담신 유사 배열이 담겨져 있습니다. 사용자가 전달한sum(1,2,3,4)) ---> 1234이것들이 arguments에 담겨져 있습니다. arguments.length 이 객체를 통해서 사용자가 정의한 인자1234에 접근할수 있습니다.
arguments.length 이걸 이용하면 sum()의 인자값이 몇개인지를 알수 있습니다.
즉 위에 예제의 arguments.length 의 값은 4입니다.
저 위의 예제의 for문의 역활은 사용자가 정의한 인자 갯수 만큼 실행이 되는 겁니다.
doument.write는 화면에 무언가를 출력하는 메소드이죠.
아 그리고
a=0이라고 할때
a+=1 랑 a=a+1과 같은 값입니다.
즉 결과값은 10입니다.
첫번째 인덱스는 사용자정의 인수 1이먼저 들어가서 arguments[i] 는 1이됩니다. 그리고 첫번째 인자값을
_sum 이라고 하는 변수에 더하였습니다. 그래서 1입니다. 그다음 인자값 1+2는 3 3+3 =6 6+4는 10입니다.
우리는 arguments.length 이객체를 포함하고 있는 이함수 몇개의 인자를 가지고 있는지 알수 있습니다.
이포스팅은 생활코딩을 참고해서 포스팅하엿습니다. egoing님 감사합니다.
'JAVASCRIPT' 카테고리의 다른 글
함수 호출 (0) | 2020.11.04 |
---|---|
매개변수의 수 (0) | 2020.11.03 |
클로저2 (0) | 2020.11.02 |
클로저1 (0) | 2020.11.02 |
콜백 -처리의 위임 (0) | 2020.11.01 |