美文网首页
第五章 闭包

第五章 闭包

作者: Epat | 来源:发表于2020-08-26 16:58 被阅读0次

    什么是闭包

    image.png
    1. 只要一个函数不在他本身的词法作用域中运行,就是一个闭包
    2. 闭包也就是函数所在的词法作用域不会被销毁


      image.png

      为什么这里会说javascript引擎极有可能依然保留这个结构,而不是会保留这个结构呢,js是否是根据词法作用域来做垃圾回收,还是可以根据变量的引用来做垃圾回收呢?

    闭包的作用

    我觉得闭包最大的作用还是封装模块化,通过闭包的方式,让被封装在内部的变量,可以在外部访问。有点像java中的私有化变量,通过公开的函数来操作变量

    // java 代码
    public class A {
      private String name = 'xxx';
      public String getName () {
        return name;
      }
    
      public String setName (name) {
        this.name = name;
      }
    }
    A a = new A();
    a.setName('xxxx');
    a.getName();
    // js 代码
    function a() {
       var name = 'xxx'
       function getName () {
        return name;
       }
       function setName (newName) {
         name = newName
       }
       return {
         getName,
         setName
       }
    }
    var aHandler = a()
    aHandler.setName('xxx')
    aHandler.getName()
    

    相关文章

      网友评论

          本文标题:第五章 闭包

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