一个闭包的很好的考题, 闭包+递归

写一个函数plus(1)(2)(3)....();

功能: 所有的括号中的参数全部相加,()个数不确定,结束的标志是()中没有参数传入;

考点: 闭包的使用+递归的调用,保存sum值。

function plus(n)
{
    var sum = 0;    //使用局部变量不污染全局    //这段初始化还是要的,不然不能记录第一个传进来的值
    if ( arguments[0] != undefined )
  {
     sum += n;
        return getPlus;
  }
    function getPlus(n)
    {
        if ( arguments[0] != undefined )
      {
         sum += n;
            return getPlus;     //实现递归
      }
        else
      {
        return sum;
      }
    }

}
var a = plus(1)(2)(3)(4)(5)(6)(7)(8)(9)();
console.log(a);  //45console.log( sum );  //报错。。。。。。。a = null ; //当不在使用该闭包时,记得释放,等于null以后,sum值就会在内存中释放。
时间: 2024-12-15 15:40:44

一个闭包的很好的考题, 闭包+递归的相关文章

JavaScript 闭包环境很奇特 - 相当于类与实例的关系?!

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 又一个疑问贴! 不过我相信,问题并不是难在如何解决,最终就是个能解决与不能解决,这很容易! 但当你无法决断是否能否解决,与如何解决的时侯,这才是最

EF错误:无法加载关系xxx,因为类型xxx不可用。以下信息对于解决上一个错误可能很有用: 类型xxx中不存在必需属性xxx

工作中遇到下面错误: 指定的架构无效.错误: 无法加载关系“Centria.ABATracker.Domain.FK_ABC_TherapySession_SessionId”,因为类型“Centria.ABATracker.Domain.TherapySession”不可用. 以下信息对于解决上一个错误可能很有用: 类型“Centria.ABATracker.Domain.TherapySession”中不存在必需属性“SessionTargetTARecord”. 无法加载关系“Centri

记录一个python里面很神奇的操作,对一个包含列表的元组进行增量赋值,成功赋值但还报错

记录一个python里面很神奇的操作 今天记录一个很神奇的操作.关于序列的增量赋值.如果你很熟悉增量赋值,你也不妨看下去,我想说的是有关于增量赋值和元组之间一种神奇的操作.来自 <流畅的Python> 一书,让我们更加深入地了解里面的原理 神奇的操作 >>>t = (1,2,[30,40]) >>>t[2] += [50,60] 上面这段代码会出现什么样的情况 a. t会变成(1,2,[30,40,50,60]) b. 因为tuple不支持对它的元素赋值,所

go语言笔记——append是内置的函数!!!new是一个函数!!!调试可以使用闭包,本质上是print调试,尼玛!

内置函数 Go 语言拥有一些不需要进行导入操作就可以使用的内置函数.它们有时可以针对不同的类型进行操作,例如:len.cap 和 append,或必须用于系统级的操作,例如:panic.因此,它们需要直接获得编译器的支持. 以下是一个简单的列表,我们会在后面的章节中对它们进行逐个深入的讲解. 名称 说明 close 用于管道通信 len.cap len 用于返回某个类型的长度或数量(字符串.数组.切片.map 和管道):cap 是容量的意思,用于返回某个类型的最大容量(只能用于切片和 map)

一个例子看懂神马是闭包

闭包就是这个玩意儿.怎么用在此不做多讲.就告诉大家闭包长神马样子. <!DOCTYPE html> <html> <head> <title>神马JS闭包</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script> function wenyi(){ var i=0; ret

闭包的一道题,不懂闭包的100%答不出来

A.45       B.55      C.90     D.100     E.0 闭包是什么?简单来说,就是存在内存中不会销毁,而这道题就是这样 虽然settimeout设置0ms,但是还是会被放在等待队列,虽然每次循环都执行了,但是只是注册了这个匿名函数,而不会执行函数中的表达式,虽然没有return,这就形成了闭包,把变量i保存起来,已注册的匿名函数就会当时“和自己有联系”的变量i取出来,所以这道题的答案是100 涉及到的知识点:js引擎单线程.闭包.settimeout 说的不是特别

王金战:改变一个差生真的很简单

当一个学生,反复遭遇失败的打击,他就变成了差生,没有一个学生生下来就注定是个差生.所以让一个差生变好真的很简单.    我刚参加工作的时候,不敢说这句话,但是我现在敢说,因为我多年的经历已经证明了这件事情.让一个差生变好真的很简单,怎么做呢?就是反其道而行之.差生是反复遭遇失败的打击后才产生的,让一个差生变好,就是让他反复享受到成功的喜悦,这个学生就会慢慢地变好了.    少年来我就用这样的方法和理念,帮着一个个学生走出困境,走向成功.我深深体会到,作为教师,作为家长,要学会欣赏孩子.特别是对那

万百腾玩O2O笑话一个——看起来很美,注定没下文

据说 2014.8.29:中国最大商业运营商万达联手互联网服务商百度.腾讯在深圳(楼盘)举行战略合作签约仪式. 从功能表面上,万达代表实体,百度代表数据,腾讯代表社区:按三个合伙人理解,是要打通实体数据社区之前的联系.嗯,冠冕堂皇的看法和理解自然博得媒体的关注. 若从深层次来看,万百腾玩O2O就是笑话一个,注定没有下文! 若大的中国零售市场,就你三家的理解可以搞出来的话,那么当马云不存在吗? 本博分析,三家玩O2O本质上说明万建林就是一个跨行的文盲,注定要输给马云. 接下来,我们分析下万达及万建

马化腾坦言非学霸 称微信最初就是一个邮箱(很长,慢慢体会)

新浪科技讯 10月23日下午消息,腾讯董事会主席兼CEO马化腾昨日参加了清华大学经管学院2016清华管理全球论坛,与清华经管学院院长钱颖一进行对话.其间,马化腾分享了自己的兴趣爱好.腾讯的发展以及微信诞生背后的故事等. 喜好天文与科幻,坦言非学霸 马化腾对天文有浓厚兴趣.他表示虽然在大学其间没有集体学习天文方面的课程,不过他自己会在业余时间看,包括找寻美国的资料来做了解.而且对于天文的兴趣,一直持续到现在. “也可能是受我的影响,我们早期的创始人中还有很多对天文有兴趣的,有的人自己投资建了个人的