美文网首页
js闭包经典面试题add(1)(2)(3),计算1+2+3的值

js闭包经典面试题add(1)(2)(3),计算1+2+3的值

作者: TurnHug | 来源:发表于2021-04-07 16:13 被阅读0次

    首先实现一个简单闭包 传入一个参数

    function add (x) {
      var count = x;
      function add2 () {
        return count += 1;
      }
      return add2;
    }
    var result = add(0);
    console.log(result);  //打印一个函数add2
    console.log(result());  //1
    console.log(result());  //2
    

    传入两个参数

    function add(x) {
      var count = x;
      function add2 (y) {
        return count += y;
      }
      return add2;
    }
    var result = add(0);
    console.log(result);  //打印函数add2
    console.log(result(1)); //1,相当于console.log(add1(0)(1))
    console.log(result(2)); //3
    

    传入三个参数

    function add (x) {
      var count = x;
      function add2 (y) {
        var num = x + y;
        function add3 (z) {
          return num += z
        }
        return add3;
      }
      return add2;
    }
    var result = add(1);
    console.log(result); //打印函数add2
    console.log(result());//打印函数add3
    console.log(result(2)(3));//6
    
    // 可以采用链式操作调用
    // console.log(add(1)(2)(3)); //6
    

    相关文章

      网友评论

          本文标题:js闭包经典面试题add(1)(2)(3),计算1+2+3的值

          本文链接:https://www.haomeiwen.com/subject/ptjukltx.html