首页 > Web开发 > 详细

js高级-闭包

时间:2020-06-22 22:09:05      阅读:68      评论:0      收藏:0      [点我收藏+]

              js高级-闭包

  闭包到底是什么,在理解这个问题之前,我们先来了解一下,闭包是如何产生的,了解完闭包的产生才能对闭包有一个更好的理解

    闭包的产生条件有三个:

      1. 函数嵌套

      2. 内嵌套函数调用了其外层嵌套函数的数据(变量/方法)

      3. 执行外层嵌套函数

    闭包是由外层嵌套函数执行,当其内部嵌套函数引用了外层嵌套函数的数据,闭包就产生了

  

// 1.编写一个嵌套函数
    function fun1() {
      var a =10;
      function fun2(){
        console.log(a);// 2.内部嵌套函数引用了外层嵌套函数的数据
      }
    }
    //3.执行外层函数==>产生闭包  注意:闭包是存在于内嵌套函数中
    fun1();
    //4.函数执行完毕,包含闭包的函数对象成为垃圾对象.闭包消失(死亡)

  闭包的生命周期: 编写一个嵌套函数==>内嵌套函数引用了外嵌套函数的数据==>执行外层函数==>函数提升,执行函数定义==> 产生闭包==>外层函数执行完毕==>包含闭包的函数对象成为垃圾对象==>闭包死亡(消失)

   闭包导航是什么?    在我的理解里,闭包是一个对象,一个用于存储被内嵌套函数引用数据的对象,当然这只是我的观点.很大一部分人认为,闭包是嵌套的内部函数

              21:02:54

js高级-闭包

原文:https://www.cnblogs.com/buwenxin/p/13179121.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!