闭包

作者: 周紫一 | 来源:发表于2019-05-23 08:51 被阅读0次
     <script>
            function Out(params) {
                var a = 'hello world'
    
                function getA() {
                    console.log(a)
                }
    
                function setA(params) {
                    a = params
                    console.log(a)
                }
                return {
                    getA,
                    setA
                }
    
            }
            var f = Out()
            f.getA() //hello world
            f.setA('hi') //hi
            f.getA() //hi
        </script>
    
    结论:嵌套内部函数共享一个闭包,并且这个闭包的名字是嵌套外部函数的函数名
    如果有多个变量被引用,那么这几个属性会被封装,其实即使是只有一个属性也会被封装,因为闭包就是一个对象,包含了被引用变量,作为属性
    
    image.png
    image.png
    什么是闭包:闭包就是一个对象,
               包涵一个变量的对象,
               浏览器中的Closure对象。
    闭包的作用:封装一组操作为原子操作
               或者说封装对一个变量的操作。
    产生or死亡:嵌套内部函数声明时产生
               嵌套内部函数作为垃圾对象时死亡,也就是说包含该闭包引用的对象死亡他也就死亡。或者说引用他的对象死亡他也就死亡
    

    相关文章

      网友评论

          本文标题:闭包

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