2010-03-26 2 views

답변

32

JavaScript에서는 이것을 허용하므로 임의의 수의 인수를 함수에 전달할 수 있습니다.

함수가 호출 될 때 사용 된 인수 값을 포함하는 숫자 속성이있는 배열과 유사한 개체 인 arguments 개체에서 액세스 할 수 있습니다. length 속성은 얼마나 많은 인수가 사용되었는지 알려줍니다

function sum(/*arg1, arg2, ... , argN */) { // no arguments defined 
    var i, result = 0; 
    for (i = 0; i < arguments.length; i++) { 
    result += arguments[i]; 
    } 
    return result; 
} 
sum(1, 2, 3, 4); // 10 

arguments 객체 배열 보일 수도 있지만, Object.prototype에서 상속 일반 객체이다 : 당신이 쓸 수있는 예를 들어, 함수 자체에 대한 참조입니다 또한 호출 및 callee 재산, , 그러나 Array 메소드를 사용하려면에서 직접 Array 메소드를 호출 할 수 있습니다. 의 length 속성을 사용하여, 함수 을 기대하고 얼마나 많은 인수 또한

function test() { 
    var args = Array.prototype.slice.call(arguments); 
    return args.join(" "); 
} 
test("hello", "world"); // "hello world" 

, 당신은 알 수 :예를 들어, 일반적인 패턴은 실제 배열이 배열 slice 방법을 사용하는 것입니다 얻을 수 함수 객체 :

function test (one, two, three) { 
    // ... 
} 
test.length; // 3 
+0

당신이 호출 할 수있는 강력한 자바 스크립트 기능을이다'test.lengt h '함수를 사용하여 사용자가 입력 한 인수의 수를 테스트합니다. –

+0

이거나'[] .slice.call (arguments);를 사용할 수 있습니다. – Mahi

4

예 그것을 할 - 그것의 좋은 연습을하고

관련 문제