【问题标题】:Javascript : accessing function arguments genericallyJavascript:一般访问函数参数
【发布时间】:2010-11-03 15:26:57
【问题描述】:

这是我所拥有的:

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

【问题讨论】:

    标签: javascript function arguments


    【解决方案1】:

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

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

    【讨论】:

    • 试试 fn.apply(this, arguments);
    • 已经使示例更接近您正在尝试的内容
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 2015-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多