2009-06-17 21 views
2

以下是我有:的Javascript:訪問函數的參數一般

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是傳遞給由返回該函數的所有參數?

回答

5

您可以使用apply調用與指定的「本」和參數數組的函數,所以要儘量

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

嘗試fn.apply(這一點,參數); – James 2009-06-17 12:11:49