zoukankan      html  css  js  c++  java
  • 闭包

    闭包:

      函数在调用的时候会形成一个私有的作用域,对内部的变量起到保护的作用,这就是闭包

      变量的销毁:

        1.人为销毁  var a=12;  a=null;

        2.自然销毁  函数调用完成后,浏览器会自动销毁函数内的变量;

          案例:

            function fn(){

              var  a=5

              a++

              console.log(a)

            }

            fn()

            fn()

            fn()

      3.闭包的优势:

        1.保护变量;

        2.缓存数据 (这是他的优势,也是他的劣势,函数调用完后会被销毁,我们不能使用这个变量,闭包可以不让他被销毁,但也会影响浏览器的性能)

      4.闭包的种类;

        1.函数式闭包;

        案例:

          function fn(){

            var a=5;

            function ff(){

              a++

              console.log(a)

            }

            ff()

          }

          fn()

          fn()

          fn()

        2.对象式闭包

          function fn(){

            a=45

            var obj={

              num:a

            }

            console.log(obj.num)

      5.函数返回值的问题:

        每个函数都有一个返回值,如人为返回,return的什么就是什么,如果没有就是undefined,

      6.闭包怎样缓存数据;

        function fn(){

          var a=23

          return function(){

            a++

            console.log(a)

          }

        }

        fn()

        fn()

        fn()

  • 相关阅读:
    EOF ---shell编程
    Linux错误代码含义
    linux连接sybase数据库-isql
    CH7-WEB开发(集成在一起)
    [转]ASP.NET MVC 入门10、Action Filter 与 内置的Filter实现(实例-防盗链)
    [转]ASP.NET MVC 入门9、Action Filter 与 内置的Filter实现(介绍)
    [转]ASP.NET MVC 入门8、ModelState与数据验证
    [转]ASP.NET MVC 入门7、Hellper与数据的提交与绑定
    [转]ASP.NET MVC 入门6、TempData
    [转]ASP.NET MVC 入门5、View与ViewData
  • 原文地址:https://www.cnblogs.com/bokeyanghao/p/10133574.html
Copyright © 2011-2022 走看看