function a(callback)
{
callback();
}
function b(){
alert("我是回调函数b");
}
a(b);
上面是一个简单的回调函数的示例,我可以理解。
下面的代码中,将ligthOn,lightOff都称为回调函数,我一下想不通,请解释一下。
使用JavaScript指定事件响应函数
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这样写就像了
这就要牵扯到异步编程的思想了。作为前端工程师,是比较擅长异步编程的,回调函数即是异步的最基础的实现方式。某个异步操作,如网络请求,文件操作API等调用,都会加入到事件循环机制当中,内部的线程池处理完毕后,派发事件,然后事件循环从事件队列当中取出执行,而作者指出的事件的原理也是如此。
一. 回调函数的传递方式(注册方式)不同
上例:是通过函数的参数传递的。
下例:是通过对象(具体到此例是事件源对象)的属性传递的。
二. 回调函数被调用的时机不同
上例:是同步调用的。
下例:是异步调用的。
三. 回调函数被调用的方式不同
上例:是被你自己的代码调用的,调用的地方一眼就能看到。
下例:不是被你自己的代码调用的,在哪里调用你看不到。在此例中,是被浏览器运行时环境内部调用的。
所以,上面的例子你很容易就理解了;而下面的例子不那么容易理解。
再次安利:彻底理解同步、异步和事件循环
回调函数简而言之,就是
由你来实现, 然后特定条件下会被调用的函数。不用理解,简单就是把函数引用传入,然后在另外一个函数内部再重新调用,也许会出现调用时候的 context 问题,遇到再解决即可。