永发信息网

javascript 为什么要用callback传函数, 而不直接在这个函数里调用另一个函数

答案:5  悬赏:50  手机版
解决时间 2021-03-21 18:43
javascript 为什么要用callback传函数, 而不直接在这个函数里调用另一个函数
最佳答案
通俗的讲就是被调用的函数不知道你要做什么, 你需要将执行的操作作为回调函数传入

比如插件, 当插件执行时你需要自定义一些操作, 插件开发者不知道你需要什么操作, 只能预留一个回调函数接口,供你传入回调函数,

例如你写了一个下拉框插件, 功能是将模拟select操作, 那么当onchange的时候是需要使用者根据需求去处理的, 而你的插件是要给很多人用的, 你不知道每个人onchange的时候要做什么事情, 这个时候你在onchange你判断一下是否有A这个函数,有的话就调用,然后继续处理接下来的逻辑. , 用户如果在onchange的时候有需求, 传入A的实现即可. ,就相当于执行用户的操作了, 就叫回调函数.
全部回答
看需求,这个在模块类封装中很重要的
我的理解是javascript本身不提供多线程功能,但是需要发送异步请求,异步请求是没办法顺序执行的,回调函数一般是为了处理这种非同步请求而设计的
&lt;html&gt; <br>&lt;head&gt; <br>&lt;title&gt;Callback function test&lt;/title&gt; <br>&lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot;&gt; <br>function main(callback) <br>{ <br>alert(&quot;I am main function&quot;); <br>alert(&quot;Invoke callback function..&quot;); <br>callback(); <br>} <br>function b(){ <br>alert(&quot;I am callback function: b&quot;); <br>} <br>function c(){ <br>alert(&quot;I am callback function: c&quot;); <br>} <br><br>function test() { <br>main(b); <br>main(c); <br>} <br><br>&lt;/script&gt; <br>&lt;/head&gt; <br>&lt;body&gt; <br>&lt;button onClick=&quot;test()&quot;&gt;click me&lt;/button&gt; <br>&lt;/body&gt; <br>&lt;/html&gt; <br>这里面main(b),那么b就称作回调函数,是不是很好理解?那有人会说我为什么不可以把b的调用放到main函数里呢?确实可以,但是那样你的main方法就只能调用b了。这里我们将b传递个main,或者a传递个main,那main里面的callback方法就是动态的回调函数。优点就在这里。
回调函数在JS的API里有一段解释是这样的: A callback is a function that is passed as an argument to another function and is executed after its parent function has completed.(不懂可以去百度翻译一下) 说的很明白了~ 就是为了在执行完父级函数后再执行回调函数(就是为了保持这个执行顺序因为JS单线程的问题),然后再一个优点就是楼上说的了,可以作为参数,随时改传进去的函数,更灵活了~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
移动硬盘传输不断掉速,往电脑传游戏,开始32
下列做法正确的是A.为保护环境应禁止使用农药
哀字开头的诗句,陌字开头的成语!!!!!!
龙昊房地产开发公司这个地址在什么地方,我要
灵剑天流是几期,灵剑天流套装怎么做
原乡中余夫人是什么社会背景
骨髓腔中具有造血功能的结构是A.黄骨髓B.红骨
一个人有一颗什么样的心灵 沉寂在负面情绪
有人识这个花吗?长得有点像秋葵!
oppor7005好还是魅族mx5
春茗茶厂直销处地址在哪,我要去那里办事
关于浪子回头的句子,浪子回头文章对句子的理
CAJ的目录关闭之后如何打开
下列表示药品有毒的图标是A.B.C.D.
turn away和turn down 都有拒绝的意思,两者
推荐资讯
已知关于x的方程ax+14=2x+a的解是3,求式子a2
联合国怎么对朝制裁?
泰国情降效果好不好 泰国情降有用吗
驾驶证扣了一分,谁知道学习多久
惠科 HKC T2208显示器怎么样
谁知道这个是哪个大河剧里面的织田信长啊?
赞赏梅花的诗句苏轼,有关梅花的诗(围绕着苏轼
小云茶叶店在什么地方啊,我要过去处理事情
伯里克利执政时代是希腊民主政治的“黄金时代
怎么画旋转图形
为什么研究卫星脱离火箭的过程时不可以把卫星
皮肤碎片怎么快速获得,王者荣耀皮肤碎片怎么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?