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

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

        //利用回调函数实现简单计算器
        //主体
        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来解决异步编程中存在的这些问题。

  • 相关阅读:
    求逆元算法
    Almost Sorted Array
    最长不递减子序列
    (LIS)最长上升序列(DP+二分优化)
    rabbitmq延迟消息
    oracle 视图
    oracle 存储过程
    http 会话(session)详解
    系统测试
    Fiddler 手机抓包
  • 原文地址:https://www.cnblogs.com/wenzizaigaoge/p/10511415.html
Copyright © 2011-2022 走看看