繁体   English   中英

在javascript中,如何传递带有参数的函数以供以后调用?

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM