2009-06-17 9 views
2

접근 함수 인수 내가 무엇을 가지고 :자바 스크립트 : 여기에 일반적으로

var log = function(arg1, arg2){ 
    console.log("inside :" + arg1 + "/" + arg2); 
}; 

var wrap = function(fn){ 
    return function(args){ 
     console.log("before :"); 
     fn(args); 
     console.log("after :"); 
    } 
}; 

var fn = new wrap(log); 
fn(1,2); 

내가 콘솔에서 좀하고 싶습니다 때문에 그것은 잘못이다 :

before : 
inside :1/2 
after : 

하지만이를 대신 얻을 :

before : 
inside :1/undefined 
after : 

어떻게 args가에 의해 반환 함수에 전달 된 모든 인수입니다 자바 스크립트 있음을 알 수 있습니다?

답변

5

당신은 지정된 '이'와 인수 배열 함수를 호출하는 apply을 사용하므로 (이 인수) fn.apply 시도

var wrap = function(fn){ 
    return function(){ 
     console.log("before :"); 
     fn.apply(this, arguments); 
     console.log("after :"); 
    } 
}; 
+1

을 시도 할 수 있습니다; – James

+0

님은 당신이 시도한 것을 더 자세히 일치시켜드립니다 –

+0

고마워요. – glmxndr

관련 문제