闭包

作者: BJ呀呀呀 | 来源:发表于2021-04-27 19:23 被阅读0次

什么是闭包

一个函数内部有一个函数可以 内部函数可以访问到外部函数的变量和参数

闭包的优缺点

  • 优点
    避免全局污染;
    可以让一个变量长期驻扎在内存中不被释放;
    私有成员存在,无法被外部调用,只可以自己内部使用
  • 缺点
    一个变量长期驻扎在内存中不被释放,在ie下会造成内存溢出;
    滥用闭包在其他浏览器下,页面会变得缓慢

垃圾回收机制

  • 标记清除
    js会对变量做一个标记YES NO的标记,
    当变量在某个环境下被使用则标记为YES,当超出该环境,则为NO,js引擎会在一定时间间隔来进行扫描,会对有NO的标签进行释放
  • 引用记数
    对于JS中引用类型的变量,采用引用计数的内存回收机制,
    当一个引用类型的变量赋值给另外一个变量,引用计数会+1;而当其中有一个变量不再等于值时,引用计数会-1,
    如果引用计数为0,则js引擎会将其释放掉
 function show(n) {
            return function () {
                n++;
                console.log(n);
            }
        }

 var fn = show(10);
        fn();
        fn();
        fn();

相关文章

  • swift-闭包

    闭包 闭包定义 闭包简化 - 尾随闭包 闭包参数 闭包返回值 闭包的循环引用

  • 闭包,闭包,闭包

    1、这家伙到底是什么? 网上关于这个的讨论的太多了太多了,有各种的举例子,但是大部分还在寻找这个答案的小伙伴对于变...

  • 闭包-Closures [swift 5.1]

    闭包的语法 尾随闭包 闭包逃离 自动闭包

  • Day7 闭包(Closures)

    本页包含内容:• 闭包表达式• 尾随闭包• 值捕获• 闭包是引用类型• 逃逸闭包• 自动闭包 1、闭包表达式 闭包...

  • Python闭包

    闭包 = 环境变量 + 函数 调用闭包内部的环境变量 闭包的经典误区 闭包与非闭包实现人类走路 非闭包 闭包

  • 闭包(closure)

    ● 闭包基础 ● 闭包作用 ● 闭包经典例子 ● 闭包应用 ● 闭包缺点 ● 参考资料 1、闭包基础 作用域和作...

  • swift- 闭包一

    /*• 闭包表达式• 尾随闭包• 值捕获• 闭包是引用类型• 逃逸闭包• 自动闭包*/

  • (9) python之闭包

    闭包闭包 = 函数 + 环境变量(函数定义的时候) 一个最简单的闭包 闭包不受外部变量影响 非闭包 闭包 闭包 只...

  • Swift-进阶 :闭包(二)逃逸闭包 & 非逃逸闭包

    本文主要分析逃逸闭包 、非逃逸闭包、自动闭包 逃逸闭包 & 非逃逸闭包 逃逸闭包定义 当闭包作为一个实际参数传递给...

  • javascript闭包详解

    跟我念 bi 闭 bao包 ,闭包的闭,闭包的包。。 闭包的简介 在计算机科学中,闭包(英语:Closure),又...

网友评论

      本文标题:闭包

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