使用闭包的方式实现一个累加函数 addNum菜鸟教程网_闭包基础教程

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

使用闭包的方式实现一个累加函数 addNum菜鸟教程网

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

使用闭包的方式实现一个累加函数 addNum菜鸟教程网_闭包基础教程

写法一

function sum(numberOne) {
      var count = numberOne;
      return function by(numberTwo) {
        if (numberTwo === undefined) {
          return count;
        } else {
          count += numberTwo;
          return by;
        }                            
      }
}
console.log(sum(10)(12)(30)());

写法二

function sum(x) {
    var result = 0;
    for(var i=0;i<arguments.length;i++){
        result += arguments[i];
    }
    var foo = function(){
        for(var i=0;i<arguments.length;i++){
            result += arguments[i];
        }
        return foo;
    };
    foo.toString = function(){
        return result;
    };
    return foo;
}

console.log(+sum(10)(12)(30));

写法三

function sum (n) {     
    var v = function (x) {
        return sum (n + x);
    };
    v.valueOf = v.toString = function () {
        return n;
    };
    return v;
}

console.log(+sum(10)(12)(30));

来源:https://www.cnblogs.com/afel/archive/2018/07/11/9294253.html

海计划公众号
(0)
上一篇 2020/04/05 01:41
下一篇 2020/04/05 01:41

您可能感兴趣的内容

  • Hexnaw菜鸟教程下载_在线网站配色评分工具

    Hexnaw菜鸟教程下载 官方网址:https://hexnaw.com/ 简介描述:在线网站配色评分工具 「Hex Naw」是一个支持检测网站配色对比和可视性评分的工具,通过评分…

    2020/03/11
  • Js扫雷游戏开发基本思路小白帮助_思路基础知识教程

    今天给大家介绍传统扫雷游戏的制作思路吧,为什么选择这个游戏呢?1.它太金典了,金典到我们都知道,都玩过,都会玩;2.它也是一个轻量级的小游戏,比较简单。我们先来捋一下扫雷游戏中的要素:从上到下的UI:遮罩层——>雷层——>数字层——>底层背景层。下面来介绍一下制作流程:1.我们制作的时候需要从底层开始做起,首先是底层背景层,只需要一张图片就ok了,作为游戏的

    2020/03/24
  • Vue中错误图片的处理基础知识入门_错误小白知识

    在一个Vue的PC项目中,要求给错误图片不要让它显示丑陋的图片,就要给图片写一个失败后的默认图片,在这里写了两种方法,第一种方法,也就是百度到的最多的代码,就是给一张图片一个默认值。如果页面中有很多地方都存在这个东西,那么在不同的页面中写很对是很麻烦的。就使用到了VUe的指令。这里分为了两种情况一种是直接加载默认图片,等图片加载完成之后再使用加载完成的图片。

    2020/03/23
  • fetch使用,ajax替代方案菜鸟教程下载_fetch小白知识

    fetch简介Fetch 提供了一个 JavaScript接口,用于访问和操纵HTTP管道的部分,例如请求和响应。它还提供了一个全局 fetch()方法,该方法提供了一种简单,合理的方式来跨网络异步获取资源。这种功能以前是使用 XMLHttpRequest实现的,Fetch提供了一个更好的替代方法Fetch API 是基于 Promise 设计,使用了Pro

    2020/03/29
  • JavaScript 判断对象中是否有某属性指南教程_对象小白指南

    判断对象中是否有某属性的常见方式总结,不同的场景要使用不同的方式。一、点( . )或者方括号( [ ] )  通过点或者方括号可以获取对象的属性值,如果对象上不存在该属性,则会返回undefined。当然,这里的“不存在”指的是对象自身和原型链上都不存在,如果原型链有该属性,则会返回原型链上的属性值。// 创建对象
    let test = {name : ‘l

    2020/04/05
  • 千万级用户网站门户前端设计小白教程_前端入门百科

    对于千万级的注册用户的门户项目是前端这块是怎么去实现的,自己在平常的工作中总结了一些经验,也是在不断的挫折中,不断演练的,希望总结出来给大家参考下,和大家一起探讨,一起进步。 一、门户设计一般会遇到哪些难点(一)、首页打开时间太慢了在开发一个门户到生产上线后,首页响应时间是检验门户整个系统架构以及开发的重要的一项指标,有时候我们发现在公司测试发现速度都挺快的

    2020/03/22
  • layui 获取radio单选框选中的值使用攻略_layui使用指南

    ​layui form 表单获取radio选中的值首先准备两个radio
    <input type="radio" name="sex" value="女" title="女" checked lay-filt

    2020/03/26
  • Flutter的生命周期和路由基础教程_Flutter入门百科

    Flutter主要有两种:无状态的 StatelessWidget和有状态的 StatefulWidget1. StatelessWidget一个 StatelessWidget 是不能被改变的,比如:Icon、Text等。由于不可改变,因此并没有什么生命周期。2. StatefulWidget一个 StatefulWidget 是有状态的,可变的。一个 S

    2020/03/23
  • Icarus小白教程_采用python3 aiohttp和vue.js开发的开源社区程序

    Icarus小白教程 官方网址:https://t.myrpg.cn GitHub:https://github.com/fy0/icarus 简介描述:采用python3 aio…

    2020/03/06
  • superstruct新手入门_一种简单且可组合的方式来验证Javascript中的数据。

    superstruct新手入门 GitHub:https://github.com/ianstormtaylor/superstruct 简介描述:一种简单且可组合的方式来验证Ja…

    2020/03/06
  • Js中获取HTML元素的方式有哪些?小白指南_元素使用帮助

    对于许多前端开发项目来说,获取元素进行操作是必不可少的,例如tab标签,全屏切换,自动滚播等效果都需要通过获取节点元素来实现。下面我们来看一下JavaScript获取HTML元素的方式。JavaScript中获取HTML元素的方式:getElementById()作用:用于获取一个基于唯一的ID的元素。用法:getelementById(),接受一个你要获取

    2020/03/20
  • CSS Sprite雪碧图基础知识_雪碧图菜鸟攻略

    一、CSS Sprite雪碧图使用场景浏览器通常很快就可以将文本显示出来,但图像往往会减慢页面的加载速度。这一现象在移动端尤为明显,为了解决这个问题,可以将多个图像拼合成单个背景图像(sprite),再通过CSS控制具体显示图像的哪一部分。CSS雪碧即CSS Sprite,也有称之为CSS精灵,是一种CSS图像合并技术,该方法是将小图标和背景图像合并到一张图

    2020/03/23
  • 纯CSS绘制3D立方体指南攻略_3D基础知识教程

    本篇记录的是使用CSS3绘制3D立方体,并旋转起来。 我的思路:1首先,用div元素画6个正方形摞在一起放在画布中间。为了区分,分别给每个div选择了不同的颜色,并且设置为半透明方便透视。2将6个div元素分为三组(上下一组、左右一组、前后一组),想象以画布中心为圆点,使三组分别沿x/y/z轴旋转90度。3上下一组,一张向上推50%正方形边长,一张向下推50

    2020/03/26
  • 33-js-concepts小白指南_每个JavaScript开发人员应该知道33个概念

    33-js-concepts小白指南 官方网址:https://github.com/stephentian/33-js-concepts

    2020/03/10
  • css实现1px 像素线条基础知识入门解决移动端1px线条的显示方式_px指南攻略

    使用CSS 绘制出 1px 的边框,在移动端上渲染的效果会出现不同,部分手机发现1px 线条变胖了,这篇文章整理2种方式实现1px 像素线条。1、利用box-shadow + transform
    span.onepixel{width: 300px;position: relative;top:50px;
    }
    span.onepixel::a

    2020/04/05
  • 当疫情过后,“远程办公”命运几何?小白攻略_工作零基础入门

    当疫情过后,“远程办公”命运几何?小白攻略 曾经有一个经典的问题:假如给你一间房屋,温度适中,食物充足,且配有手机,WiFi和充电器,你能待多久?是天荒地老,还是终日难熬? 如今在…

    2020/03/20