什么都没有填充的参数无论如何填充?

时间:2013-11-13 13:30:53

标签: javascript ajax

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

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

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

希望有人可以帮助我顺利完成。 / Kristofer Guldvarg

3 个答案:

答案 0 :(得分:1)

这看起来像一个回调。因此,另一个函数负责在某个时刻调用它并传递result

所以你要调用一个带success函数的函数。你说的是“嘿,当你完成这件事之后,请打电话给我给你的这个成功函数,并请给你result你想出的。

答案 1 :(得分:1)

让我们简化jQuery的定义方式(非常好奇的可以看到实际的AJAX实现here);

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)。

你不是调用这个功能;您正在定义一个函数,并将其传递给其他地方,并允许它们稍后调用它,并传递它们想要的信息。

答案 2 :(得分:0)

这是Callback函数,实现为Closure