arguments

arguments

함수에는 arguments라는 변수에 담긴 숨겨진 유사 배열이 있다. 이 배열에는 함수를 호출할 때 입력한 인자가 담겨있다.

function sum(){ // 매게변수가 없음 
    var i, _sum = 0;    
    for(i = 0; i < arguments.length; i++){ // arguments.length -> 4개 
        document.write(i+' : '+arguments[i]+'<br />');
        //arguments는 사용자가 전달한 인자가 들어있다. 
        _sum += arguments[i]; 
    }   
    return _sum;
}
document.write('result : ' + sum(1,2,3,4)); //인자 4개를 전달함 
// result : 10

매개변수의 수

매개변수와 관련된 두가지 수가 있다. 하나는 함수.length, 다른 하나는 arguments.length이다. arguments.length는 함수로 전달된 실제 인자의 수를 의미하고, 함수.length는 함수에 정의된 인자의 수를 의미한다.

function zero(){
    console.log(
        'zero.length', zero.length,
        'arguments', arguments.length
    );
}
function one(arg1){
    console.log(
        'one.length', one.length,
        'arguments', arguments.length
    );
}
function two(arg1, arg2){
    console.log(
        'two.length', two.length,
        'arguments', arguments.length
    );
}
zero(); // zero.length 0 arguments 0 
one('val1', 'val2');  // one.length 1 arguments 2 
two('val1');  // two.length 2 arguments 1

Last updated