这是回调函数吗?

function a(fn){

    console.log(1)

    fn.call()

}

function b(fn){

    console.log(2)

    fn.call()

}


a(()=>{b(()=>{a()})})        

这个是回调函数吗?为什么不能这样调用a(b(a())),如果函数内部没有调用函数,不是可以这样子使用的吗a(b())


幕布斯6054654
浏览 482回答 3
3回答

MMTTMM

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

人到中年有点甜

楼上说的很清楚了,我再强调一下重点() => { fn() }是匿名函数表达式,将其作为参数等价于用这个匿名函作做参数;fn()是语句,即执行fn函数并返回执行结果。如果代码没有显式return则返回undefined。将其作为参数等价于将fn执行结果作参数你的a,b函数中参数都是函数,因此不能直接用fn(),得用函数包裹起来才可以
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript