[英]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.