newbie方法:什么是javascript回调函数?

前端之家收集整理的这篇文章主要介绍了newbie方法:什么是javascript回调函数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
只是一个在调用它的另一个函数后执行函数,完成?

请问我几乎没有关于编程的东西,而且我觉得很难找到一个正确的新手答案或解释这是什么意思.

我可以从stackoverflow gurus请求一个尝试吗?

解决方法

一般来说,一旦您调用的另一个函数完成,就会使用回调函数(就像您在问题中所述).一个很好的例子是 AJAX请求:大多数库都有一个功能,允许您在后台发送请求到服务器,而不刷新页面(这使用AJAX).您通常为此AJAX函数提供两个回调函数:成功函数和失败函数.

如果此请求成功,它将调用成功函数,以便您的代码可以执行所需的操作;例如,它可能刷新页面的一部分,执行某种动画,或提醒用户他们的信息被保存.另一方面,如果失败,回调函数可能会提醒用户他们的数据未被保存,并且应该再次尝试.

回调函数允许库开发人员创建非常通用的代码,其他人可以使用,然后根据自己的需要进行自定义.

以下是一些jQuery代码,以显示您上面的示例(此代码将不起作用,URL不存在):

jQuery.ajax(
  url: '/mywebsite/somepage.PHP',success: function itWorked(returnedData) {
    // This is the success function and will be called only if the ajax call
    // completes succesfully

    alert('Yay it worked! ' + returnedData);
  },error: function itFailed(originalRequest,textStatus,errorThrown) {
    // This is the error function and will only be called if the ajax call
    // has an error

    alert('It Failed! ' + textStatus + '. ' + errorThrown);
  } 
);

编辑:起初,我说:“一般……”.实际上,回调比函数完成时更多使用.像其他答案一样,它可以在函数的任何地方使用:开始,中间和结尾.基本思想是代码开发人员可能不知道您将如何使用HIS代码.所以,他使它非常通用,让你有能力做任何你需要的数据.

一个很好的例子是jQuery.each方法,它允许您传递将在“数组”中的每个元素执行的回调(我说数组,因为它可以实际上迭代许多可能或可能不是实际的事情阵列).

<a href='someurl.html' class='special_link'>Some URL</a>
<a href='anotherurl.html' class='special_link'>Another URL</a>
<a href='onelasturl.html' class='special_link'>One Last URL</a>

// The following code says: execute the myEachCallbackFunction on every link
// that has a class of 'special_link'
$('a.special_link').each(function myEachCallbackFunction(i) {

  // The link variable will contain the object that is currently
  // being iterated over. So,the first time through,it will hold
  // the 'someurl.html' link,the second time it will hold the
  // 'anotherurl.html' link,and the last time it will hold the
  // 'onelasturl.html' link
  var link = $(this);

  // Change the background color of each link to be red
  link.css('background-color','red');
});

因此,我们可以从这个例子中看出,jQuery的开发人员实现了.each方法,并允许我们对所调用的每个链接进行任何我们想要的操作.

猜你在找的JavaScript相关文章