带参数和返回值的Javascript回调

mgr*_*ier 2 javascript callback

这是我的困境,我有一系列被调用的函数,我使用回调来完成一个函数.回调返回一个值,这也很有效,我的问题是当我向回调添加参数时,我无法再访问返回的值.这是一个有效的例子:

function myFunc1(x, y) {
   /*do stuff*/
   myFunc2(z, callback);
}

function callback(results) {
   alert(results);  /*this works!*/
}
Run Code Online (Sandbox Code Playgroud)

这很好用,显示返回的结果.我的问题是我需要做的是这样的:

function myFunc1(x, y) {
   /*do stuff*/
   myFunc2(z, callback(x,y));
}

function callback(x,y,results) {
   alert(x);        /*works!*/
   alert(y);        /*works!*/
   alert(results);  /*doesn't work :(*/
}
Run Code Online (Sandbox Code Playgroud)

我需要一种方法来访问值返回以及我的参数.这样的事可能吗?

the*_*eye 6

你可以Function.prototype.bind像这样使用

myFunc2(z, callback.bind(null, x, y));
Run Code Online (Sandbox Code Playgroud)

bind函数将返回一个新函数,第一个参数作为上下文,下一个参数是callback调用时传递给的实际参数.