js回调函数(记录、复习、巩固)

74 阅读1分钟

回调函数的概念

什么是回调函数?

一个被当做参数的函数,即为回调函数

回调函数的作用

几乎所有的第三方函数我们都无法修改函数的内部实现, 比如数组的forEach,map等。那么我们也就无法在这样的函数体中,调用自己所写的功能模块。所以此时,回调函数就提供了这样的能力,使我们可以将自己所书写的函数传入第三方函数中,从而实现完整的功能。

回调函数的使用

下面我们将通过冒泡排序,来展示回调函数的使用方式。

let arr = [5,6,4,7,3,8,2,9,0,1];
    function smallToLarge(L,R){//回调函数
        return L > R;
    }
    function LargeTosmall(L,R){//回调函数
        return L < R;
    }
    function bubbleSort(arr,callBack){
        for(let i=0; i<arr.length-1; i++){
            for(let j=0; j<arr.length-i-1; j++){
                //将回调函数当做参数,决定结果是由小到大,还是由大到小
                if(callBack(arr[j],arr[j+1])){
                    [arr[j],arr[j+1]] = [arr[j+1],arr[j]];
                }
            }
        }
    }
    bubbleSort(arr,smallToLarge);
    console.log(arr);//0123456789
    bubbleSort(arr,LargeTosmall);
    console.log(arr);//9876543210

函数bubbleSort拥有一个参数callBack,而smallToLarge与LargeTosmall均为回调函数,当我们在bubbleSort函数调用时,传入smallToLarge与LargeTosmall就可以非常方便的控制排序的规则。