博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
回调函数
阅读量:6289 次
发布时间:2019-06-22

本文共 1029 字,大约阅读时间需要 3 分钟。

回调函数——即在一个函数中调用另一个函数,解决异步编程的一种思路,一般用于递归。

//利用回调函数实现简单计算器    //主体    function calculator(num1,num2,func){        return func(num1,num2);    }    function add(num1,num2){        console.log(num1+num2);    }    function reduce(num1,num2){        console.log(num1-num2);    }    function multiply(num1,num2){        console.log(num1*num2);    }    function divide(num1,num2){        console.log(num1/num2);    }    calculator(1,2,add);    calculator(1,4,reduce);    calculator(1,2,multiply);    calculator(1,2,divide);

 

//递归    //斐波那契数列    function fiboncci(n){        if( n===1 || n===2)            return 1;        else            return fiboncci(n-1)+fiboncci(n-2);    }    console.log(fiboncci(7));  //13 //求前n个数的和    function sum(n){        if(n===1)            return 1;        else            return n+sum(n-1);    }    console.log(sum(5));  //15

由于回调函数存在问题:

1、一个函数嵌套另一个函数,嵌套多了,会导致回调地狱

2、由于异步执行,因此回调的多个函数在何时执行完成返回是不确定的

3、不支持try, catch;

ES6中提供了新对象Promise来解决异步编程中存在的这些问题。

转载于:https://www.cnblogs.com/wenzizaigaoge/p/10511415.html

你可能感兴趣的文章
js sort()
查看>>
Java环境变量从jdk1.7修改为1.8
查看>>
二分查找/暴力 Codeforces Round #166 (Div. 2) B. Prime Matrix
查看>>
vue项目启动需安装?
查看>>
dedecms 系统的 data/rssmap.html不存在!更新了也没有。。。
查看>>
理解RESTful架构
查看>>
Zookeeper02
查看>>
ASP.NET编译执行常见错误及解决方法汇总之五(终结篇)
查看>>
编译器的工作过程
查看>>
Oracle 12C 新特性之表分区或子分区的在线迁移
查看>>
Centos 安装ixgbe驱动
查看>>
【BZOJ2589】 Spoj 10707 Count on a tree II
查看>>
select2使用时遇到的一些坑(4.x.x以上版本)
查看>>
(转).net中的session与cookies区别及使用方法
查看>>
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
查看>>
rsync同步工具的配置与使用
查看>>
浅谈现公司的Spring Cloud微服务框架
查看>>
【OCP-12c】CUUG 071题库考试原题及答案解析(17)
查看>>
RAC RMAN 备份 RMAN-03009 ORA-19504 ORA-27040 RMAN-06012 channel c3 not allocated 错误分析
查看>>
[转]指针函数与函数指针的区别
查看>>