javascript - 这个回调函数如何理解?
迷茫
迷茫 2017-04-11 13:09:52
[JavaScript讨论组]
function a(callback)   
{     
    callback();   
}   
function b(){   
alert("我是回调函数b");     
}   
a(b); 

上面是一个简单的回调函数的示例,我可以理解。
下面的代码中,将ligthOn,lightOff都称为回调函数,我一下想不通,请解释一下。


使用JavaScript指定事件响应函数





迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(5)
大家讲道理
window.onload = function()
{
    document.images[0].addEventListener('mouseover',lightOn)
    document.images[0].addEventListener('mouseout',lightOff)
}

这样写就像了

伊谢尔伦

这就要牵扯到异步编程的思想了。作为前端工程师,是比较擅长异步编程的,回调函数即是异步的最基础的实现方式。某个异步操作,如网络请求,文件操作API等调用,都会加入到事件循环机制当中,内部的线程池处理完毕后,派发事件,然后事件循环从事件队列当中取出执行,而作者指出的事件的原理也是如此。

PHP中文网

一. 回调函数的传递方式(注册方式)不同
上例:是通过函数的参数传递的。
下例:是通过对象(具体到此例是事件源对象)的属性传递的。
二. 回调函数被调用的时机不同
上例:是同步调用的。
下例:是异步调用的。
三. 回调函数被调用的方式不同
上例:是被你自己的代码调用的,调用的地方一眼就能看到。
下例:不是被你自己的代码调用的,在哪里调用你看不到。在此例中,是被浏览器运行时环境内部调用的。

所以,上面的例子你很容易就理解了;而下面的例子不那么容易理解。

再次安利:彻底理解同步、异步和事件循环

伊谢尔伦

回调函数简而言之,就是由你来实现, 然后特定条件下会被调用的函数

阿神

不用理解,简单就是把函数引用传入,然后在另外一个函数内部再重新调用,也许会出现调用时候的 context 问题,遇到再解决即可。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号