关于回调函数的一些理解

   回调函数定义: 回调函数作为参数传递给另一个函数,并在父函数完成后执行。

    第一句的理解:函数名(函数对象)可以把它当成形参传给需要回调函数的函数,加上()之后就会执行此函数。

    第二句的理解:回调函数在父函数里面当然会在父函数执行完后再执行,这样函数的执行就存在了前后的依赖关系,所以当有些方法执行需要前提条件的时候,这些方法就可以写成回调函数。

    为什么要用回调函数? 

    因为回调函数是作为形参在父函数上存在的,所以可以通过传不同的实参(不同的函数名),来实现不同的功能,非常灵活。

    而且它会在父函数完成后执行,所以它和父函数有一种前后的依赖关系,所以回调函数多用在异步进程里面,例如:ajax请求,动态加载资源,定时器等,当然组件的事件很多也都需要回调函数的支持,是因为事件存在前后的依赖关系。

例子:

 // 回调函数
    function callFn(a, b) {
      // dosomething
      console.log(a + "---" + b)
    }

    // 主函数 通过主函数传函数名和参数
    function mainFn(callback, options) {
      var abc = "someStr";//第一种传参方式:把主函数内部数据往回调函数里传
      callback(abc, options);
    }

    // 调用回调函数
    mainFn(callFn, 'otherStr');//第二种传参方式:把函数名和参数一起往主函数里传



    // 匿名的回调函数 其实就是把函数名换成了具体的函数,这样看起来其实很多地方都用到了回调函数,例如:ajax,事件,forEach等

    // 主函数
    function mainFn(callback, options) {
      var abc = "someStr";
      callback(abc, options);
    }

    // 调用回调函数
    mainFn(function callFn(a, b) {
      // dosomething
      console.log(a + "---" + b)
    }, 'otherStr');

    

猜你喜欢

转载自blog.csdn.net/qq_41111677/article/details/108508821
今日推荐