JavaScript闭包

作者: nomooo | 来源:发表于2019-03-23 20:28 被阅读8次

闭包
函数A中有一个函数B,函数B中可以访问函数A中的变量或者数据,此时形成闭包

  • 闭包的模式
    函数模式(里面的返回作为返回值),对象模式(里面的对象作为返回值)
  • 闭包的作用:
    缓存数据(是优点也是缺点)

举个🌰----函数模式的闭包

    function f1() {
      var num = 10;
      return function () {
        console.log(num);
      }
    }
    var ff=f1();
    ff();//10

再举个🌰----对象模式的闭包

    function f3() {
      return {
        age:100,
        getAge:function () {
          console.log(this.age);
        }
      }
    }

   var obj= f3();
    obj.getAge();//100

闭包的作用缓存数据;只要是想把数据保存起来,就把这个数据放在闭包中(就是在外层函数和里层函数的中间)
正因为闭包的出现缓存了数据,那么函数中的变量就没有得到及时的释放

    function f1() {
      var num = 10;//局部变量----函数使用后应该释放,但是闭包的情况,该变量的值没有释放,延长作用域了.
      return function () {
        return num++;
      }
    }
    var ff=f1();
    console.log(ff());//10
    console.log(ff());//11
    console.log(ff());//12
    console.log(ff());//13

相关文章

  • JavaScript----闭包

    javascript之闭包 闭包的概念     闭包(closure)是 JavaScript 的一种语法特性。 ...

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

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

  • javascript中闭包是什么

    javascript中闭包是什么 JavaScript 变量可以是局部变量或全局变量。私有变量可以用到闭包。闭包就...

  • Javascript 闭包

    闭包 (注:所以案例以 javascript 实现) 初识闭包 什么是闭包 MDNClosures are fun...

  • 作用域闭包

    概览 背景知识:JavaScript内存管理、JavaScript作用域。 内容 1 闭包定义 闭包:当函数可以记...

  • JavaScript 作用域

    概览 背景知识:JavaScript内存管理、JavaScript作用域。 内容 1 闭包定义 闭包:当函数可以记...

  • 20170815 前端开发日报

    JavaScript闭包,只学这篇就够了 闭包不是魔法 这篇文章使用一些简单的代码例子来解释JavaScript闭...

  • JavaScript深入理解-闭包(Closure)

    推荐文章:学习Javascript闭包(Closure)- 阮一峰javascript深入理解-从作用域链理解闭包...

  • 闭包

    学习Javascript闭包(Closure)

  • JS之闭包与IIFE

    本篇文章主要讨论了: JavaScript引擎 全局对象 闭包 循环 + 闭包 IIFE + 闭包 1.JavaS...

网友评论

    本文标题:JavaScript闭包

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