很多做网站的童鞋对于js中的callback函数感到非常困惑,主要原因是对于这块要学习的资料很少,平时工作学习中又很常见,用到的时候都是复制一下他人的代码,功能实现了也就再不深入理解了。
这样长期以来,callback的概念就越来越混乱,因为你总感觉它是你Ajax请求后调用的那个函数,又感觉它是你某一个函数中的形参而已,而当你有一天看到一点关于Node.js的代码后你会更加崩溃,因为你会发现很多的callback,但是这么着下去肯定是不行的,因为很多的东西如果只是知道概念和理论,没有实践出结果,没有思考和感受,这些东西永远不是你的,所以任何关于技术上用到的东西都应该去花时间钻研一下。
一个回调函数,也被称为高阶函数,是一个被作为参数传递给另一个函数(在这里我们把另一个函数叫做“otherFunction”)的函数,回调函数在otherFunction中被调用。一个回调函数本质上是一种编程模式(为一个常见问题创建的解决方案),因此,使用回调函数也叫做回调模式。
比如说我们做一个商城网站,客户要购买一个东西,当客户点进物品的详情页之后,有些图片资源还未请求完毕,图片没有加载完成,而此时客户就可以点击add to cart, 发起另一个请求,js任务列表中的添加购物车事件就会开始执行,它的执行也不会干扰到图片资源的请求任务,这就是使用了callback函数的异步机制。