Javascript:一般访问函数参数

时间:2009-06-17 12:05:01

标签: javascript function arguments

这就是我所拥有的:

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返回的函数的所有参数?

1 个答案:

答案 0 :(得分:5)

你可以使用apply来调用具有指定'this'和参数数组的函数,所以试试

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