zoukankan      html  css  js  c++  java
  • js中的回调函数

    如何理解回调函数,这个地方我是反复看反复的不会

    今天又看到arr中的forEach方法,又上网查了一遍资料

    首先来看一下网上有个回调函数的例子

            function getData(callback){
                setInterval(function(){
                    var info = {
                        name:'xu',
                        id:1
                    }
                    callback(info)
                },1000)
            }
            function check(data){
                if(data.id == 1){
                    console.log('恭喜你!验证成功')
                }
            }
    
            getData(check)

    我先来解释一下上面的代码意思(仅供参考,有不对地方请指正)

    在解释之前我要说一下什么是函数的调用

    函数名加括号:fn() 这就是函数的调用 如果括号里有参数的话,我们叫他形参

    接着上面例子讲。在不看参数的情况下上面有2个函数,都是属于函数的声明

    分别是:getData()和check()

    getData里有个定时器,每隔一秒创建一个对象info,info里有name和id属性,还有1个函数的调用

    check里有个判断,获得形参的id属性和1进行比较,如果是true,就在控制台打印console.log('恭喜你!验证成功')

    当我们真正调用时执行的步骤如下:

    先是执行getData函数,里有个定时器,每隔一秒创建一个对象info,info里有name和id属性

    然后执行到callback(info),这里是将刚才执行到getData函数中的参数check拿来替换callback 变成check(info)

    这里就是函数的调用,将info的实参替换data的形参,并去判断id属性值是不是1,真返回console.log('恭喜你!验证成功'),false不做判断

    至于那个forEach还在理解当中....

  • 相关阅读:
    异常空格处理
    django
    django的ORM理解
    Django前后端分离
    Django企业项目实战
    Centos7 从 git version 1.8.3.1升级git version 2.32.0 全过程
    代码 80070005 Windows Uudate 遇到未知错误
    Power Shell Active Directory 批量创建分组
    H3C S5024E-PWR-X 端口镜像及抓包实例
    FusionCompute 忘记密码 重置操作
  • 原文地址:https://www.cnblogs.com/xufeng1994/p/10260990.html
Copyright © 2011-2022 走看看