初识JavaScript闭包

    最近在学习闭包,我简单说一下我对闭包的理解吧。

    个人感觉闭包就是提供一种方法来使用函数的内部变量。学习闭包必须理解JavaScript变量的作用域。全局变量和局部变量。函数内部能够读取全局变量,但是在外部无法读取函数内部变量。而闭包就是解决外部得到函数内的局部变量。看一下下面的代码。

    function main(){
        var x = 10;

        function test(){

            alert(x);

        }

    return test;

    }  

    var test = main();

    test();

    运行代码后可以看到,打印出来的是x的值,通过这样的方法就能取得main()函数的内部变量了,而test()就是一个闭包。

    闭包的用途有两个:1.读取函数内部的变量;2.让函数内部变量的值始终保持在内存中。

    在使用闭包的使用要注意,由于闭包会使得函数中的变量始终保存在内存中,所以内存消耗会很大,所以不能滥用闭包。 

你可能感兴趣的:(JavaScript,闭包)