![](/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.