본문 바로가기

UI개발

자바스크립트 함수지향 - argument

arguments 객체

함수안에서 함수의 인자 정보를 담고 있는 객체. 유사 배열. (배열은 아님)

 

매개변수와 인자의 차이

function a(매개변수parameter){}

a(인자arguments);
function sum(){ // 매개변수가 없음.
    var i, _sum = 0;
    
    for(i = 0; i < arguments.length; i++){  
    	// arguments에는 사용자가 전달한 인자가 들어간다. 
		// 즉, 인자의 갯수만큼 for문이 돈다.

        document.write(i + " : " + arguments[i] + "<br>");
        _sum += arguments[i]; // _sum = _sum + arguments[i]
    }
    return _sum;
}

document.write("result : " + sum(1,2,3,4));

 

    결과 :  0 : 1

       1 : 2

       2 : 3

       3 : 4

       result : 10


매개변수와 인자의 갯수가 달라도 문제없음. 

몇개의 인자가 들어올지 모를 때 매개변수를 지정하지 않음.

 

 

매개변수의 수

arguments.length 전달된 인자의 수를 의미

function zero(){ // 매개변수 없음
    console.log(
        "zero.length", zero.length,
        "arguments", arguments.length
    );
}

zero(); // 인자 없음

 

    결과 : zero.length 0 arguments 0

 

function one(arg1){ // 매개변수 1개
    console.log(
        "one.length", one.length,
        "arguements.", arguments.length
    );
}

one("val1","var2") // 인자 2개

 

    결과 : one.length 1  (함수가 정의한 매개변수의 숫자를 알려줌)

      arguments 2 (함수를 호출 할 때 몇개의 인자가 전달했는지 정보를 알려줌)


매개변수와 인자가 다를 때 length 속성을 이용하여 경고창과 같은 알림을 만드 수 있음.

'UI개발' 카테고리의 다른 글

Object Model  (0) 2016.07.26
자바스크립트 함수지향 - 함수의 호출  (0) 2016.05.17
자바스크립트 함수지향 - 유효범위 (Scope)  (0) 2016.05.15
alt와 title  (0) 2016.05.05
미디어쿼리  (0) 2016.05.05