为什么不需要调用jqueryAjax回调函数?

时间:2017-07-27 12:41:08

标签: javascript jquery html ajax web-frontend

我被告知只有在我传递参数时才能调用带参数的函数但是最近我进入了这个Jquery-Ajax的东西,事情看起来有点不同。教程中的一个例子就是这样做的:

$("#div1").load("demo_test.txt", function(responseTxt, statusTxt, xhr) {
  if (statusTxt == "success")
    alert("External content loaded successfully!");

  if (statusTxt == "error")
    alert("Error: " + xhr.status + ": " + xhr.statusText);
});

注意到有三个参数的功能?是的,那个。令人困惑的是,它的参数显然已经从任何地方传递/映射,但它已被用于IF内部并发出警报并且它起作用。怎么样 ?我是说怎么样?

2 个答案:

答案 0 :(得分:0)

不幸的是这不对, 在JavaScript中,您可以调用一个等待params而不发送任何内容的函数:

function sum(x, y) {
  alert(x + y);
}

sum();

答案 1 :(得分:0)

你的第一个假设是假的,mentioned here

  
      
  • JavaScript函数不会对参数值(参数)执行任何检查。

  •   
  • JavaScript函数不会检查收到的参数数量。

  •   

因此,将使用1,2或3个参数调用回调(或者甚至可以为0)。

当呼叫完成时,JQuery load method会调用你的回叫。