我在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");
}
但这个DOESN" T似乎可以立即调用警报(不是在ajay返回后)
将函数传递给包含其自身参数的方法的正确方法是什么。
答案 0 :(得分:2)
使用bind
执行partial function application。
ShowPopupWithCallback("MyController/Load", alertCallback.bind(null, "My Message"));
答案 1 :(得分:2)
您可以使用匿名函数:
ShowPopupWithCallback("MyController/Load", function(){ alertCallback("My Message");});
答案 2 :(得分:0)
您可以简单地将其作为附加参数传递
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);