当前位置: 首页 > news >正文

js函数的递归调用方法

1.最优秀的方式
var sum=(function(){
    'use strict'
    return  function fun(num){
        if(num<=1){
            return 1;
        }else{
            return num+fun(num-1);
        }
    }
})()

console.log(sum(5));//15

var sumAnother=sum;
console.log(sumAnother(5));//15

sum=null;
console.log(sumAnother(5));//15

2,常规方式
function sum(num){
  if(num<=1){
    return 1;
  }else{
    return num+sum(num-1);
  }
}

console.log(sum(5));//15

3,不提倡方式
function sum(num){
  if(num<=1){
    return 1;
  }else{
    return num+arguments.callee(num-1);
  }
}
console.log(sum(5));//15

var sumAnother=sum;
console.log(sumAnother(5));//15

sum=null;
console.log(sumAnother(5));//15
复制代码


相关文章:

  • 如何设计一个微型分布式架构?
  • 再谈static
  • django框架使用mysql报错,及两种解决方法
  • 前端开发常用命名规范
  • delete
  • 这是第一篇博客,与技术无关。
  • [转]C++11 左值、右值、右值引用详解
  • MySQL定时检查是否宕机并邮件通知
  • Win10常用优化技巧汇编
  • 记一次对Vulnerable Docker靶机渗透全过程
  • linux命令行快捷键
  • 第十七章:掌握网格(三)
  • 现代软件工程 期中/期末总结博客作业
  • [转]CentOS 6.5安全加固及性能优化
  • NDK编译可执行文件
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • Android组件 - 收藏集 - 掘金
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • Hibernate【inverse和cascade属性】知识要点
  • java正则表式的使用
  • Lucene解析 - 基本概念
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • 官方解决所有 npm 全局安装权限问题
  • 类orAPI - 收藏集 - 掘金
  • 一个JAVA程序员成长之路分享
  • 原生js练习题---第五课
  • Semaphore
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • $.ajax()参数及用法
  • $L^p$ 调和函数恒为零
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (LeetCode 49)Anagrams
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (一)Dubbo快速入门、介绍、使用
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • .htaccess配置重写url引擎
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET Reactor简单使用教程
  • .net 中viewstate的原理和使用
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .net6Api后台+uniapp导出Excel
  • .NET导入Excel数据
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • .Net中wcf服务生成及调用
  • [ vulhub漏洞复现篇 ] Apache APISIX 默认密钥漏洞 CVE-2020-13945
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序