将动态参数添加到具有参数的函数,该参数作为参数传递给当前函数

时间:2014-08-15 00:49:04

标签: javascript jquery currying

我将讨论我想要做的事情:

我将一个带参数的函数作为参数传递给函数。此函数将为传递的函数添加一个附加参数,然后调用函数。

例如:

funcA(function(){ funcB("add Me") })    // call to funcA

funcA : function( fn ){ 
 var additionalParams = "add Me too"
}

funcB : function( str1,str2){ //gets me both strings }

我看了here并认为这是我想要的但没有帮助。

这是我试过的jsfiddle

1 个答案:

答案 0 :(得分:1)

不是必要的呼叫申请方法。只是声明传递给funcA

的函数的参数
funcA = function( fn ){ 
    var additionalParams = "add Me too";
    fn(additionalParams); 
}

funcA(function(str){
    funcB("add Me", str);
});

funcB = function( str1,str2){ //gets me both strings };

<强>更新

你的jsfiddle代码修改像我说的那样。

function appendArguments(fn) {
    var slice = Array.prototype.slice.call.bind(Array.prototype.slice),
        args = slice(arguments, 1);
    return function (t) {
        return fn(t);
    };
}

var bar = appendArguments(function(t){foo(1, t)});
bar(2);



function foo (x,y){
    alert(x);
    alert(y);
}
试试自己。它对我有用。