JS中的闭包机制二

2016-11-19  本文已影响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();
上一篇下一篇

猜你喜欢

热点阅读