Javascript: tilgang til funksjonsargumenter generelt

stemmer
2

Her er hva jeg har:

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);

Det er galt, fordi jeg ønsker å komme i konsollen:

before :
inside :1 / 2
after :

Men jeg får dette i stedet:

before :
inside :1 / undefined
after :

Hvordan kan jeg fortelle javascript som argser alle de argumenter som sendes til funksjonen returneres av wrap?

Publisert på 17/06/2009 klokken 12:05
kilden bruker
På andre språk...                            


1 svar

stemmer
5

Du kan bruke søke å kalle en funksjon med en spesifisert 'denne', og argumentet array, så prøv

var wrap = function(fn){
    return function(){ 
        console.log("before :");
        fn.apply(this, arguments);
        console.log("after :");
    }
};
Svarte 17/06/2009 kl. 12:09
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more