我将讨论我想要做的事情:
我将一个带参数的函数作为参数传递给函数。此函数将为传递的函数添加一个附加参数,然后调用函数。
例如:
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。
答案 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);
}
试试自己。它对我有用。