2013-08-27 2 views
3

Apply는 두 개의 인수, 즉 컨텍스트를 취하고 두 번째 인수는 인수의 배열입니다. 그러나 JavaScript에서는 args가 배열이 아니라 "배열과 같은 객체"입니다.JavaScript에서는 Arg을 적용 할 수 있습니까?

function firstFunc(){ 
    secondFunc.apply(someContext,arguments); 
} 

을 아니면 내가이 행사를 통해해야합니까 : 그래서 다음 코드는 유효한 것이 진정한 배열이되지 않는 것입니다 고려

function firstFunc(){ 
    var realArray=array.prototype.slice(arguments); 
    secondFunc.apply(someContext,realArray); 
} 

답변

2

당신은 slice를 호출하지 않고, argumentsapply를 사용할 수 있습니다. 나는 항상 이것을한다.

내가 알고있는 한, JavaScript에는 args이라는 단어에 특별한 것이 없습니다.

+1

아,하지만'arguments'에는 특별한 것이 있습니다. 그것은 진정한 배열이 아닙니다. 하지만 네,'apply'를 사용할 수 있습니다. – Brad

+0

@ 브래드 : 당신은'인수'를 의미합니까? 'args'는 아무것도 아닙니다. –

+0

예, 고마워요. 편집 됨. – Brad

5

나는 arguments이 아니라고 가정합니다. args입니다. 첫 번째 버전은 괜찮습니다. MDN을 사용하면 매우 명확합니다. herehere :

argsArray 매개 변수에 인수를 사용할 수도 있습니다.

argsArray은 객체와 같은 배열 일 수 있습니다.

ES5가 나오기 전까지는 인수가 규칙의 예외 였으므로 다른 Array와 유사한 객체에는 apply를 사용할 수 없습니다. 현대 자바 스크립트 엔진에서는 배열과 같은 객체를 적용 할 수 있습니다.

관련 문제