![](/img/trans.png)
[英]How to write a jQuery function with a callback that you can pass Params to?
[英]How to pass params to a callback
我正在寻找实现以下目标的最佳做法:
我有3个功能: manager
, httpGet
和onsuccess
:
manager
调用httpGet
函数并成功传递onsuccess
函数。
httpGet
发出请求并调用onsuccesss
onsuccess
使用需要manager
参数
在不涉及httGet
情况下,从manager
传递到onsuccess
的最佳方法是什么?
我当时在考虑将params
对象传递给httpGet
,该对象又将传递给onsuccess
但我真的不喜欢将参数传递给根本不使用它们的函数的想法。
您的意思是这样的:
function manager()
{
var managerParam =0;
//the anonymous function below is in the scope of manager() so has
//access to all of managers parameters
httpGet(function() {
//this function can use managerParam
managerParam ++;
});
console.log(managerParam === 1); //true
}
function httpGet(onsuccess)
{
onsuccess();
}
使用闭包 :
data = { cool: true };
var yourCallbackFunction = function(httpData, notHttpData){};
var bakedCallback = (function() {
var _data = data;
return function(httpResp) {
yourCallbackFunction(httpResp, _data);
}
})();
httpGet.onSuccess(bakedCallback);
data
是您想要传递给函数的额外数据。
在您的回调中: httpData
是从请求接收的数据。 NOThttpData
是多余的数据。
manager
onsuccess
定义为局部函数,它可以使用其参数和局部变量。 onsuccess
到httpGet
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.