千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:长沙千锋IT培训  >  技术要点  >  千锋长沙前端培训分享之JS中的回调函数

千锋长沙前端培训分享之JS中的回调函数

来源:千锋教育
发布人:千锋长沙
时间: 2021-12-16 17:14:38

       回调函数是非常重要的概念,但是初学者往往对于回调函数理解起来异常困难。我将从回调函数的概念、回调函数的作用、如何使用回调函数的这三点,来剖析这个问题。大概需要10分钟时间阅读,希望能对您有所帮助。

src=http___pic1.zhimg.com_v2-c50fe3fd611da69d26515bce80f028df_1440w.jpg_source=172ae18b&refer=http___pic1.zhimg

       什么是回调函数?一个被当做参数的函数,即为回调函数。首先我们要清楚一个概念,在JS中万物皆为对象。函数本身也是一个对象,既然是对象,所以函数当然可以当做函数的参数。

//可以这样创建函数

let fun = new Function("arg1", "arg2", "return arg1 * arg2;");

fun(3, 3); //6

如上述代码,fun函数就是一个对象。

function fun1(fn){

fn();

}

function fun2(){

console.log("callBack");

}

fun1(fun2); //callBack

上述代码中,fun2做为fun1的参数,fun2即为回调函数。在这里肯定会有小伙伴有疑问,为什么在fun1中不去直接调用fun2,而是通过回调函数进行传参?下一小节,我们将详细讨论这个问题。

回调函数的作用就是几乎所有的第三方函数我们都无法修改函数的内部实现, 比如数组的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就可以非常方便的控制排序的规则。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

最新文章NEW

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>