문제

다음은 다음과 같습니다.

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 :

JavaScript에게 어떻게 말할 수 있습니까? args 반환 된 함수에 전달 된 모든 인수입니까? wrap ?

도움이 되었습니까?

해결책

당신이 사용할 수있는 적용하다 지정된 'this'및 인수 배열로 함수를 호출하려면 시도해보십시오.

var wrap = function(fn){
    return function(){ 
        console.log("before :");
        fn.apply(this, arguments);
        console.log("after :");
    }
};
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top