美文网首页
一篇理解JavaScript 中的回调函数 callback

一篇理解JavaScript 中的回调函数 callback

作者: CaesarH000 | 来源:发表于2022-07-27 16:11 被阅读0次

    回调函数 callback

    如果你去看菜鸟的教程,它会告诉你:

    “回调函数就是一个函数,它是在我们启动一个异步任务的时候就告诉它:等你完成了这个任务之后要干什么。这样一来主线程几乎不用关心异步任务的状态了,他自己会善始善终。”

    这句话非常正确,但重要的只有第一句,即,回调函数就是一个函数。整个回调函数需要理解的,也就只有这一句话。

    callback

    callback在这里是一个参数名,它可以是任何名字,zhangSan、liSi、wangErMaZi……,但它作为参数时,含义就是“函数类型”。
    举个例子,在java中,我们定义变量之前要声明变量的类型,在写函数时要声明返回类型和参数类型……
    在下面这段代码中,写了一个名为intToString的函数,这个函数的返回值的类型是"String",传入的参数类型是"Integer",b作为一个"Integer"类型的变量,被传入函数intToString函数中,其返回的"String"类型的返回值被c所接收。

        public String intToString (Integer a){
              return a.toString();
        }
        Integer b = 0;
        String c = intToString(b);
        System.out.println(c);
    

    JavaScript作为一种弱类型语言,在定义变量时不需要声明变量类型,直接使用关键字var去声明新的变量。在书写函数的时候,也不需要声明传入的参数的类型,直接使用传入的参数即可。

        function fun(a,b,c){
        a += 5;
        b = "这是b:" + b;
        console.log(a,b,c);
    }
       fun(1,"aaa",NaN);
    

    这么做的优点是非常方便使用,不用去考虑参数的类型,其缺点则是会因为类型不清导致出现预料之外的值。有兴趣的同学可以看看这个视频,这是一个因为弱类型导致的b站崩溃的事故。
    2021.07.13 B站是这样崩的
    言归正传,当callback在出现在参数列表的时候,我们并不知道它是一个什么类型的参数,但当我们把它作为函数使用的时候,它就一定是一个函数了!

    function fun(callback,a,b,c){
         a += 5;
         b = "这是b:" + b;
        console.log(a,b,c);
        callback(c);
    }
    
    function callBackFun(a){
          console.log("这是一个函数!" + a);
    }
    fun(callBackFun,1,2,3);
    
    

    后记

    这是我在自学js基础的过程中,碰到的一个比较特殊的功能,这种将函数作为参数使用的情况,在其他语言中不太常见,导致理解起来会有一些困难。菜鸟的教程讲的并不好,所以只能在互联网上搜索相关的教程来看,如果有什么错误的地方,欢迎各位大佬指正!另外,如果你看不懂,那一定是我的文笔有问题,不要怀疑自己~

    相关文章

      网友评论

          本文标题:一篇理解JavaScript 中的回调函数 callback

          本文链接:https://www.haomeiwen.com/subject/jkpoirtx.html