zoukankan      html  css  js  c++  java
  • 使用闭包的方式实现一个累加函数 addNum

    使用闭包的方式实现一个累加函数 addNum,参数为 number 类型,每次返回的结果 = 上一次计算的值 + 传入的值,如: addNum(10); //10 addNum(12); //22 addNum(30); //52

    写法一

     1 function sum(numberOne) {
     2               var count = numberOne;
     3               return function by(numberTwo) {
     4                 if (numberTwo === undefined) {
     5                   return count;
     6                 } else {
     7                   count += numberTwo;
     8                   return by;
     9                 }                            
    10               }
    11         }
    12         console.log(sum(10)(12)(30)());

    写法二

     1 function sum(x) {
     2             var result = 0;
     3             for(var i=0;i<arguments.length;i++){
     4                 result += arguments[i];
     5             }
     6             var foo = function(){
     7                 for(var i=0;i<arguments.length;i++){
     8                     result += arguments[i];
     9                 }
    10                 return foo;
    11             };
    12             foo.toString = function(){
    13                 return result;
    14             };
    15             return foo;
    16         }
    17 
    18         console.log(+sum(10)(12)(30));

    写法三

     1 function sum (n) {
     2             
     3             var v = function (x) {
     4                 return sum (n + x);
     5             };
     6 
     7             v.valueOf = v.toString = function () {
     8                 return n;
     9             };
    10 
    11             return v;
    12         }
    13 
    14         console.log(+sum(10)(12)(30));
  • 相关阅读:
    字符串转换整数 (atoi)
    Z 字形变换
    最长回文子串
    寻找两个有序数组的中位数
    二维码QRCode
    多个线程访问url
    store procedure 翻页
    store procedure example
    使用graphics2D给图片上画字符
    procedure的over(partition by ) function
  • 原文地址:https://www.cnblogs.com/afel/p/9294253.html
Copyright © 2011-2022 走看看