zoukankan      html  css  js  c++  java
  • javaScript闭包和垃圾收集器

    如果人口一直增长,地球总有一天会爆炸的。

    浏览器同样如此,内存有限的情况下,如果里面的东西越来越多,总有一天会不堪重负。

    垃圾收集器就是用来清理不再用的内存空间的,执行环境会负责管理代码执行过程中使用的内存。而垃圾收集的策略有二,现代浏览器最常用的垃圾收集方式是标记清除

      1.给内存中的每一个变量都加上标记;

      2.去掉环境中的变量以及被引用的变量;

      3.那些被标记的变量就要被垃圾处理器清除出去。

    在IE7版本之前,浏览器垃圾收集器是按照内存分配量运行的,当内存占用到了一个临界值,垃圾收集器就会运行。在有很多的变量的情况下,垃圾收集器频繁运行就会导致浏览器的崩溃。

    闭包:

    垃圾收集器是针对局部变量的;

    为了让变量一直在内存中,我们首先会想到定义一个全局变量,但是全局变量也许会在我们后面的使用中不小心改变了它的值,我们可以用局部变量来保护,但问题又来了,局部变量怎样访问呢,于是就出现了闭包。闭包的例子有很多,比如一个函数里面嵌套一个函数,这样做的目的就是让函数外部可以访问里面的变量。

    JS不像java或其他面向对象语言有private属性,用闭包事实上充当了这样的角色。

  • 相关阅读:
    BZOJ 1707 [Usaco2007 Nov]tanning分配防晒霜
    BZOJ2697:特技飞行
    Bridging signals(NlogN最长上升子序列)
    HDU 4291 A Short problem(矩阵+循环节)
    计蒜之道 初赛第一场B 阿里天池的新任务(简单)
    1008: [HNOI2008]越狱
    1022: [SHOI2008]小约翰的游戏John
    1192: [HNOI2006]鬼谷子的钱袋
    2456: mode
    BZOJ-1968
  • 原文地址:https://www.cnblogs.com/shuiqing/p/7131646.html
Copyright © 2011-2022 走看看