JavaScript回调函数和递归函数
来源:互联网 发布:绘制网络拓扑结构图 编辑:程序博客网 时间:2024/06/05 05:07
JavaScript回调函数:
把一个函数的指针作为另外一个函数的参数,当调用这个函数时,这个函数就叫做回调函数。(通过指针来调用)
function math(num1,num2,fun){ return fun(num1,num2); } alert(math(1,2,bb)); function bb(num1,num2){ return (num1+num2)*2-1; } /*alert(math(1,2,funtion(){ return (num1+num2)*2-1; }));*/
bb函数这个指针传给了math函数中的参数fun,通过fun来调用
以上调用方式在有多个函数时很麻烦,故采用这种方式。
function math(num1,num2,fun){ return fun(num1,num2); }alert(math(1,2,funtion(){ return (num1+num2)*2-1; }));
JavaScript递归函数:
递归函数指在函数内部直接或者间接的调用自己例如:
function aa(num1){ if(num1>1){ aa(--num1); } document.write(num1); } aa(4);//1123分析:当aa(4)调用时,外部的num1为4,进入函数判断,num1--,弹出num1位3,当aa(3)调用时,外部的num1为3,进入函数判断,num1--,弹出num1位2,当aa(2)调用时,外部的num1为2,进入函数判断,num1--,弹出num1位1,当aa(1)调用时,外部的num1为1,条件不成立,弹出num1位1。。那么现在每个调用的值知道啦,为什么是1123呢?涉及到栈和堆的一些知识,由于栈存储过程叫压入栈,先进后出。aa(4)先入栈,aa(3),aa(2),aa(1)依次入栈,那么aa(1)在最顶层,由先进后出的顺序当然是aa(1)对应的值先出栈,依次类推,故结果为1123。
function aa(num1){ if(num1>1){ aa(--num1); } document.write(num1); } aa(4);//1123*/
在看递归函数的一个案例 --阶乘:
function aa(num1){ if(num1 == 1){ return num1; }else{ return num1*aa(--num1); } } alert(aa(4));//4*3*2*1=24
0 0
- JavaScript回调函数和递归函数
- JavaScript的回调函数与递归函数
- JavaScript中的引用函数、调用函数和回调函数
- Javascript回调函数和匿名函数实例
- Javascript回调函数和函数重载的用法
- java和javascript中的回调函数
- javascript 理解和使用回调函数
- 函数高级之递归调用,回调函数及原理
- javascript回调函数
- javascript 回调函数
- javascript 回调函数
- javascript回调函数
- javascript 回调函数
- Javascript 回调函数
- javascript回调函数
- javascript回调函数
- JavaScript回调函数
- javascript 回调函数
- HDU1851A Simple Game(SG定理)
- 苹果iPad Pro新品:7.9寸+手写笔+3D Touch
- Android之---PullRefreshListView(带抖动效果的下拉刷新)
- FZU1054-阅读顺序
- 前端学习日记(一)之CSS学习
- JavaScript回调函数和递归函数
- 第十四周项目1(3)-验证二插排序树的算法
- Flask-Mail邮件发送问题
- 看完挺感动的…
- Centos7安装并配置mysql5.6完美教程
- 关于二维数组首地址赋予指针的问题
- 符号——Alt+数字键
- MFC画笔
- POJ 2135 Farm Tour (最小费用流)