zoukankan      html  css  js  c++  java
  • Javascript 的函数式对象(三)利用闭包模拟类的静态变量和方法

          除了模拟类的私有变量和私有方法。闭包还可用来模拟类的静态变量和方法。

     

    除了再次利用js的闭包特性,还需要借助js语法上的一些特点。

    执行上述代码后,浏览器控制台将会输出如下字符串:

     

     Created 1 tree items!

     Created 2 tree items!

     

    之所以把上述一些js变量和函数称为“静态”,是借用了Java的提法。

     

    这些“静态”变量和方法被保存在闭包中,在内存中是唯一的,

     

    不会随着该函数副本的增加而增加。如果一个函数需要被实例化多次,

     

    但其中的一些内部函数并不需要访问任何实例数据,从节省内存的角度考虑,

     

    可采用上述构建静态函数的方法。js中的“静态”概念,有一点与Java不同:

     

    如果上述TreeItem被设为null,即不再有引用指向它,那么它的闭包也将消失,

     

    保存在闭包中的静态变量和方法,也将被垃圾回收器择机回收。

     

     

     

  • 相关阅读:
    vue(5)
    vue(4)
    vue(3)-防止闪烁
    vue(2)
    bootstrap 模态框
    2017年上半年工作总结和计划
    vue(1)
    文本框数量加减功能
    meta 控制移动端页面的缩放
    题解 P1550 【[USACO08OCT]打井Watering Hole】
  • 原文地址:https://www.cnblogs.com/aaronjs/p/2228363.html
Copyright © 2011-2022 走看看