函数高级之递归调用,回调函数及原理

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>递归调用与回调函数</title>
    <script>
    //递归函数→就是函数自己调用自己(自己调用自己往往停不下来,所以需要结束条件终止)
        //例1 (alert根本停不下来)
        function go(){
            alert("你是猴子请来的逗比吗?");
            //自己调用自己
            go();
        }
       // go();(函数预加载,被调用时执行)

        //例2.(递归调用原理)
        var num=0;
        function go1(){
            alert("我是猴子请来的!");
            num++;
            if(num<3){
                go1();
            }
            alert("你来打我呀!");
        }
       // go1();
        /*
        递归原理:按顺序执行:
        1.当执行到num=0时,执行一遍alert(),num=1,if语句判断num<3成立,
        执行里面go1函数,因为go1就是本函数(本函数就是go()函数),所以又从上往下执行,反复从上往下执行,
        直到if语句(num<3)不成立,此时执行下面的alert,返回上一层if语句,
        此时代表上一层if语句执行完,然后开始执行下面的alert,,,
        所以--我是猴子请来的!--先执行三遍,然后--你来打我呀!--在执行三遍!!!
        */

       /*
       回调函数:回调函数表面意思就是回来调用,同时把函数也作为参数;
        如果传入不同的函数,就会执行不同的事情;(你给什么,我就传什么);
        例3
        */

            //参数为plus的函数名
            var s=fn(4,2,plus);
            //参数为miuns的函数名
            var n=fn(9,3,miuns);
           // 弹出s
            alert(s);
            //弹出n
            alert(n);
            function fn(a,b,fun){
                //回调
             var num=fun(a,b);
                return num;
            }
            //一个简单的执行了加法运算的函数
            function plus(a,b){
                return a+b;
            }
            //一个简单的执行了减法运算的函数
            function miuns(a,b){
                return a-b;
            }



    </script>
</head>
<body>

</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值