为了账号安全,请及时绑定邮箱和手机立即绑定

这是回调函数吗?

这是回调函数吗?

幕布斯6054654 2019-03-27 21:18:57
function a(fn){    console.log(1)    fn.call()}function b(fn){    console.log(2)    fn.call()}a(()=>{b(()=>{a()})})        这个是回调函数吗?为什么不能这样调用a(b(a())),如果函数内部没有调用函数,不是可以这样子使用的吗a(b())
查看完整描述

3 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

a(b()) 中 a() 传入的参数并不是 b函数, 而是 b函数运行的返回值
如果要将b当回调函数传入,应该是 a(b)

查看完整回答
反对 回复 2019-04-04
?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

楼上说的很清楚了,我再强调一下重点

() => { fn() }是匿名函数表达式,将其作为参数等价于用这个匿名函作做参数;
fn()是语句,即执行fn函数并返回执行结果。如果代码没有显式return则返回undefined。将其作为参数等价于将fn执行结果作参数

你的a,b函数中参数都是函数,因此不能直接用fn(),得用函数包裹起来才可以


查看完整回答
反对 回复 2019-04-04
  • 3 回答
  • 0 关注
  • 481 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信