JS中的闭包机制二

晚上又学习了一下闭包,这次有了更加多的收获,明白了闭包如何阻止无用变量回收,下面是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();
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容