1

我正在学习 javascript 课程,但无法理解下面的示例如何使用“正确的东西”填充参数,因为我实际上没有在任何地方使用相应的元素调用函数?

  success: function(result) {
    $('myElement').html(result);
  }

猜猜我错过了某种默认行为?

希望有人可以帮助我弄清楚这一点。/克里斯托弗·古德瓦格

4

3 回答 3

1

这看起来像一个回调。所以另一个函数负责在某个时候调用它并传递result.

因此,您正在调用一个带有函数的success函数。你是在说“嘿,当你完成了那个,请调用我给你的这个成功函数,并请给result它你想出的那个。

于 2013-11-13T13:34:28.727 回答
1

让我们简化一下 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它(在这种情况下)。

您没有调用该函数;您正在定义一个函数,并将其传递给其他地方,并允许他们稍后调用它,并传递他们想要的信息。

于 2013-11-13T13:36:11.540 回答
0

这是一个作为Closure实现的回调函数。

于 2013-11-13T13:35:36.313 回答