<!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>
函数高级之递归调用,回调函数及原理
最新推荐文章于 2021-11-03 19:26:01 发布