我正在学习 javascript 课程,但无法理解下面的示例如何使用“正确的东西”填充参数,因为我实际上没有在任何地方使用相应的元素调用函数?
success: function(result) {
$('myElement').html(result);
}
猜猜我错过了某种默认行为?
希望有人可以帮助我弄清楚这一点。/克里斯托弗·古德瓦格
我正在学习 javascript 课程,但无法理解下面的示例如何使用“正确的东西”填充参数,因为我实际上没有在任何地方使用相应的元素调用函数?
success: function(result) {
$('myElement').html(result);
}
猜猜我错过了某种默认行为?
希望有人可以帮助我弄清楚这一点。/克里斯托弗·古德瓦格
这看起来像一个回调。所以另一个函数负责在某个时候调用它并传递result
.
因此,您正在调用一个带有函数的success
函数。你是在说“嘿,当你完成了那个,请调用我给你的这个成功函数,并请给result
它你想出的那个。
让我们简化一下 jQuery 的定义方式(好奇的可以在这里查看实际的 AJAX实现);
var jQuery = {
ajax: function (obj) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (this.readyState === 4 && this.status === 200) {
obj.success(this.textContent);
}
}
xhr.open(obj.url, 'GET', false);
xhr.send(null);
}
};
当你这样做时;
jQuery.ajax({
url: '/foo.php',
success: function (response) {
$('myElement').html(result);
}
});
.. jQuery 可以使用调用成功函数obj.success
,并将它想要的任何数据传递给this.textContent
它(在这种情况下)。
您没有调用该函数;您正在定义一个函数,并将其传递给其他地方,并允许他们稍后调用它,并传递他们想要的信息。
这是一个作为Closure实现的回调函数。