美文网首页
JS中的闭包机制二

JS中的闭包机制二

作者: 书中有凉气 | 来源:发表于2016-11-19 21:12 被阅读0次

晚上又学习了一下闭包,这次有了更加多的收获,明白了闭包如何阻止无用变量回收,下面是2个例子,让你更好的理解什么是闭包,为什么要用闭包,闭包如何避免垃圾回收的。

1.闭包防止变量a被回收1

    function dealwith(){
        var a=1;
        function inc(){
            console.log(++a);
        }
        return inc;
    }
    var test=dealwith();
    test();
    test();

2.闭包防止变量i被回收,外部调用dealwith内部的变量

    function dealwith(){
        var i=0;
        function inc(){
            i++;
        }
        function del(){
            i--;
        }
        function get(){
            console.log(i);
            return i;
        }
        function set(k){
            i=k;
        }
        return {
            inc:inc,
            del:del,
            get:get,
            set:set
        }
    }

    var test=dealwith();
    test.set(100);
    test.inc();
    test.get();
    test.del();
    test.get();

相关文章

  • JS闭包大结局(JS闭包系列3)

    在上一篇中再谈JS闭包(JS闭包系列2),我详细的介绍了JS中的变量作用域相关的概念,结合第一节关于JS闭包(JS...

  • JavaScript解析机制与闭包原理实例详解

    本文实例讲述了JavaScript解析机制与闭包原理。分享给大家供大家参考,具体如下: js解析机制: js代码解...

  • JS-高级-05(闭包.单线程问题...)

    闭包 从内存角度分析闭包 闭包的问题 JS垃圾回收机制: 创建对象obj,也就是说,变量obj是对新创建对象的引用...

  • 简单的聊一下闭包

    js中的闭包 闭包是学习js中永远也绕不过去的一个坎,那么,今天我们就去一段简单的代码开始聊一聊闭包 什么是闭包 ...

  • 浅谈闭包

    js中的闭包 闭包是学习js中永远也绕不过去的一个坎,那么,今天我们就去一段简单的代码开始聊一聊闭包 什么是闭包 ...

  • php之闭包函数(Closure)

    php闭包函数(Closure) JS闭包 js和php闭包使用和区别

  • 学习JavaScript闭包和作用域笔记

    JS JavaScript闭包和作用域 闭包 JavaScript高级程序设计中对闭包的定义:闭包是指有权访问另外...

  • JS闭包

    JS闭包 闭包练习

  • 再谈JS闭包(JS闭包系列2)

    这篇文章,来继续谈谈Javascript闭包的剩余问题。因为在上一篇文章中关于JS闭包(JS闭包系列1)主要简单的...

  • 深入理解闭包(六)——闭包

    原文地址:深入理解闭包(六)——闭包 终于讲到闭包了,这一路走来不容易。从前面的博文中我们知道,js的垃圾回收机制...

网友评论

      本文标题:JS中的闭包机制二

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