美文网首页
js中闭包和递归的概念和案例

js中闭包和递归的概念和案例

作者: SuYongZhi | 来源:发表于2018-11-22 22:23 被阅读0次

闭包

闭包的概念: 函数A中,有一个函数B,函数B中可以访问函数A中定义的变量或者数据,此时就形成了闭包(这句话暂时不严谨)
闭包的模式: 函数模式的闭包,对象模式的闭包
闭包的作用:缓存数据,延长作用域链
闭包的优点和缺点:缓存数据

函数模式闭包案例:

function f1() {
    var num = 10;
    function f2() {
    console.log(num);
}
f2();
}
f1();

对象模式闭包:

function f3() {
    var num = 10;
    var obj = {
    age:num
};
console.log(obj.age);
}
f3();

递归

递归:函数自己调用自己,此时就是递归,递归一定要有结束的条件

var i = 0;
function f1() {
  i++;
  if (i<5) {
  f1();
}
console.log("这是递归输出,函数自己调用自己!");
}
f1();

递归案例:

递归实现求N个数字的和
function getSum(x) {
    if (x==1) {
    return 1;
}
return x + getSum(x-1);
}
console.log(getSum(100));
}())
求一个数字各个数上的数字的和
function getEverSum(x) {
    if (x<10) {
    return x;
}
return x%10 +  getEverSum(parseInt(x/10));
}
console.log(getEverSum(520));
求斐波那契数列
function getFib(x) {
    if (x==1 || x==2) {
    return 1;
}
return getFib(x-1)+getFib(x-2);
}
console.log(getFib(12));

最后分享一句超级演说家崔万志说过的话:抱怨没有用,一切靠自己!

相关文章

  • js中闭包和递归的概念和案例

    闭包 闭包的概念: 函数A中,有一个函数B,函数B中可以访问函数A中定义的变量或者数据,此时就形成了闭包(这句话暂...

  • Javascript 闭包和递归

    本篇是关于自己对于JS学习闭包和递归的学习和总结 , 大部分为引用 , 部分案例自己总结 。 1.1 闭包(cl...

  • php之闭包函数(Closure)

    php闭包函数(Closure) JS闭包 js和php闭包使用和区别

  • JS闭包大结局(JS闭包系列3)

    在上一篇中再谈JS闭包(JS闭包系列2),我详细的介绍了JS中的变量作用域相关的概念,结合第一节关于JS闭包(JS...

  • 递归和闭包

    js变量的作用域:全局作用域(全局变量) : 在函数外面声明的变量**生命周期(变量从声明到销毁): 页面从打开到...

  • Javascript 学习(闭包)

    js闭包 js中的闭包问题是由函数变量的作用域引出的,全局变量和局部变量的概念和Java感觉没有太大的区别,但是如...

  • 闭包

    关键词:闭包(closure) 概念:闭包就是能够读取其他函数内部变量的函数,对于js,闭包就是将函数内部和函数外...

  • 学习JavaScript闭包和作用域笔记

    JS JavaScript闭包和作用域 闭包 JavaScript高级程序设计中对闭包的定义:闭包是指有权访问另外...

  • 闭包与立即执行函数

    在学习js的过程中,我们都会遇到闭包和立即执行函数的相关概念,今天就这两个概念做一个大致的整理。 本文结构: 闭包...

  • JavaScript闭包应用介绍

    本文介绍一下js中的一个重要概念——闭包。其实即便是最初级的前端开发人员,应该都已经接触过它。 一、闭包的概念和特...

网友评论

      本文标题:js中闭包和递归的概念和案例

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