这就是我所拥有的:
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
返回的函数的所有参数?
答案 0 :(得分:5)
你可以使用apply来调用具有指定'this'和参数数组的函数,所以试试
var wrap = function(fn){
return function(){
console.log("before :");
fn.apply(this, arguments);
console.log("after :");
}
};