[英]How do I pass the name of a function as a parameter then reference that function later?
[英]In javascript, how can I pass a function with parameter to be called later?
我在javascript中有以下方法:
ShowPopupWithCallback("MyController/Load", alertCallback);
function alertCallback()
{
alert("Ready");
}
function ShowPopupWithCallback(url, callbackFunc)
{
$.post(url, function (data) {
$("#myDialog").html(data);
callbackFunc();
}, "html");
}
这工作正常,但我现在想从调用ShowPopupWithCallback方法传递一个参数。 就像是:
ShowPopupWithCallback("MyController/Load", alertCallback("My Message"));
function alertCallback(message)
{
alert(message);
}
function ShowPopupWithCallback(url, callbackFunc)
{
$.post(url, function (data) {
$("#myDialog").html(data);
callbackFunc();
}, "html");
}
但这似乎不起作用,因为立即调用了警报(不在ajay返回之后)
什么是将函数传递给包含其自身参数的方法的正确方法。
使用bind
执行部分功能应用程序 。
ShowPopupWithCallback("MyController/Load", alertCallback.bind(null, "My Message"));
您可以为此使用匿名函数:
ShowPopupWithCallback("MyController/Load", function(){ alertCallback("My Message");});
您可以简单地将其作为附加参数传递
function alertCallback(message)
{
alert(message);
}
function ShowPopupWithCallback(url, msg, callbackFunc)
{
$.post(url, function (data) {
$("#myDialog").html(data);
callbackFunc(msg);
}, "html");
}
ShowPopupWithCallback("MyController/Load", "My Message", alertCallback);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.