0
点赞
收藏
分享

微信扫一扫

javascript闭包原理和面试题

扒皮狼 2022-01-11 阅读 101

 1.可以在函数的外部访问到函数内部的局部变量 。

2.让这些变量始终保存在内存中,不会随着函的结束而自动销毁。


    <script>
        function a() {
            function b() {
                var bb = 234;
                console.log(aaa); //123
            }
            var aaa = 123;
            return b;
        }
        var demo = a();
        demo();

        // 闭包:函数中会出现的一个现象,将函数(a)内部的函数(b)返回到函数(a)外部去
        // 形成闭包后,函数外部可以使用函数内部的变量、数据。
        // 闭包一旦形成,作用域不会被释放,一直占用内存,内存泄漏(被占用)。
    </script>
<script>
        function sum() {
            var count = 0;
            return function() { // 函数是在sum中被定义的
                count++;
                return count;
            }
        }
        var demo = sum();
        console.log(demo()); //1
        console.log(demo()); //2
        console.log(demo()); //3
        console.log(demo()); //4
        console.log(demo()); //5
        console.log(demo()); //6
        
        //在形成闭包后,作用域一直存在不被销毁,返回值会不断增加
</script>
举报

相关推荐

0 条评论