callback 是一种特殊的函数,这个函数被作为参数传给另一个函数去调用。这样的函数就是回调函数。
callback 拆开,就是 call back,在英语里面就是「回拨电话」的意思。
那我们就用打电话为例子来说明一下 callback:
用编程来解释的话,是这样的:
好了,解释完了:callback 就是(传给另一个函数调用的)函数。
把括号里面的内容去掉,简化成:callback 就是一种函数。
$button.on('click', function(){})
click 后面的 function 就是一个回调,因为「我」没有调用过这个函数,是 jQuery 在用户点击 button 时调用的。
div.addEventListener('click', function(){})
click 后面的 function 也是一个回调,因为「我」没有调用过这个函数,是浏览器在用户点击 button 时调用的。
一般来说,只要参数是一个函数,那么这个函数就是回调。
很多初学者不明白 callback 的用法,因为 callback 有一点「反直觉」。
比如说我们用代码做一件事情,分为两步:step1( ) 和 step2( )。
符合人类直觉的代码是:
step1() step2()
callback 的写法却是这样的:
step1(step2)
为什么要这样写?或者说在什么情况下应该用这个「反直觉」的写法?
一般(注意我说了一般),在 step1 是一个异步任务的时候,就会使用 callback。
什么是异步任务呢?且听下回分解。
饥人谷一直致力于培养有灵魂的编程者,打造专业有爱的国内前端技术圈子。如造梦师一般帮助近千名不甘寂寞的追梦人把编程梦变为现实,他们以饥人谷为起点,足迹遍布包括facebook、阿里巴巴、百度、网易、京东、今日头条、大众美团、饿了么、ofo在内的国内外大小企业。 了解培训课程:加微信 xiedaimala03,官网:https://jirengu.com
本文作者:饥人谷方应杭老师