一个普通的带函数的参数:
function f1(f2){
//处理其他的事情,执行f2
f2()
}
回调函数
$(div).on("click",,function(){})
回调包含同步回调和异步回调。只不过异步回调用的多一些而已。
回来讲为什么js是单线程但是还可以进行异步,就是因为浏览器的内核是多线程。
js在定制的初期就实现了很多的异步方法,setTimeout,setInterval,ajax等
异步的实现和我们一点关系都没有,并不是我们自己用原生js写出来的。
所以异步是:当执行到异步函数,浏览器自己会新开一个线程,监听请求结果。
另外,这个异步方法中有一个函数,js线程将这个函数交给浏览器开启的新线程,监听请求结果。
等到请求结果出现时,将这个函数放到任务列表中。
js线程在执行完栈中的代码后,查看任务列表。---event loop
之前以为是异步回调进行注册之后,直接将回调的函数放入事件队列,其实是异步先浏览器单开一个线程进行执行,有结果之后再将回调函数放入事件队列,等待js线程上的代码执行完毕,执行异步回调的函数。