美文网首页
闭包的理解

闭包的理解

作者: WilliamCha_8c18 | 来源:发表于2018-03-17 15:41 被阅读0次

    闭包是这样一种机制: 函数嵌套函数,内部函数可以引用外部函数的参数和变量,参数和变量不会被垃圾回收机制所收回.

    这里涉及到几个概念:

    1.函数嵌套函数

    2.作用域(全局变量和局部变量)

    3.变量的访问规则

        垃圾回收机制(garbage collection)

        js内部不断扫描内存,并清理无引用对象(自动完成);

    function aa(){

            var num=10;

            function bb(){

                num++

                console.log(num);

            }

            return bb;

        }

        //bb(); //无法直接访问函数内部的函数

        aa()();//11

        aa()();//11

        aa()();//11

        var closure = aa();

        closure();//11

        closure();//12

        closure();//13

    闭包的好处

            1.可以让一个变量长期驻扎在内存当中不被释放

            2.避免全局变量的污染, 和全局变量不同, 闭包中的变量无法被外部使用

            3.私有成员的存在, 无法被外部调用, 只可以自己内部使用

    结论:

            闭包是指有权访问另一函数作用域中的变量的函数

            闭包,可以访问函数内部的局部变量,并让其长期驻留内存

            由于闭包会携带包含它的作用域(运行环境),因此会比其他函数占用更多内存,过度使用闭包            可能会造成性能问题。

    相关文章

      网友评论

          本文标题:闭包的理解

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