观察特征

92 阅读1分钟

回调函数

定义:
一般来讲,都是fn((a,b,c)=>{})这种形式,“回调的参数”一定是内部定义的,然后暴露给外部直接使用。我们
需要明白的是回调的调用时机,以及此时回调参数a,b,c在函数fn内传递的实参是什么。(目前已知的回调实参有:函数
内部私有函数、数组元素、数组实参)。

不同点:
回调函数作为形参和其他参数作为形参,主要不同于,其他参数直接作为实参,而回调函数直接作为时参,回调函数的形
参是由函数内部传递的实参决定的,
举个栗子:

// 内部没有定义任何参数,所以没必要传 
setTimeout(()=>{}) 

/* 
    内部使用for循环去获取每次的元素和索引,即item和index,提供给外部使用。调用时机为每次
    for循环,调用执行内容由外部回调内容就决定
*/
[].forEach((item, index)=>{})  
/*
    形参为回调,其中resolve和reject都是promise内部函数定义的私有函数,回调调用时机为
    Promise初始化,其中resolve和reject也是在初始化传入。
*/
new Promise((resolve, reject)=>{
    resolve(1) //传入1
    reject(2) // 传入2
})