[英]Passing parameter in callback
我希望能夠在回調函數中傳遞參數,但是要從原始調用函數傳遞參數,並具有以下規定,例如:
function foo() {
var p = 5;
getDataFromServer(callBackFunction);
}
function callBackFunction(data) {
// I need value of 'p' here
...
}
function getDataFromServer(callback) {
// gets data from server
callback.call();
}
問題是我不想更改函數getDataFromServer() (即允許它接受另一個參數)。
這可能嗎? 謝謝。
是的,您可以使用閉包來執行此操作。
但是,由於您的示例不清楚,因此很難給出代碼。
我的猜測是您想要這樣的東西:
function foo() {
var p = 5;
getDataFromServer(callBackFunction(p));
}
function callBackFunction(p) {
var closureOverP = function(data) {... something with p ...};
return closureOverP;
}
是的,這很高興知道。
function foo() {
var p = 5;
getDataFromServer(function(){
callBackFunction(p)
});
}
那么一個簡單的anon函數不會起作用嗎?
function foo()
{
var p = 5;
getDataFromServer( function()
{
callBackFunction( p );
} );
}
絕對有可能,我會說功能編程語言的良好實踐。 但是您可以這樣調用函數:
function getDataFromServer(callback) {
// gets data from server
callback();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.