闭包 2022年3月7日

118 阅读1分钟

闭包

函数的高级用法 -- 闭包

闭包形成的条件: 1.有函数嵌套,内层函数被返回(显式,隐式) 2.内层函数访问外层函数私有变量 3.内层函数被引用

闭包的作用: 1.生成不会被销毁的执行空间,生成块作用域。缺点:占用内存空间 2.外层函数可以访问内层函数的私有变量 3.设计模式中使用闭包

闭包的写法:

```<script>
    // let inner
    // function outer() {
    //     let num = 100
    //     //显示闭包写法
    //     return function () {
    //         console.log('num ', num);
    //     }
    // }
    // outer()
    // inner()

    let inner
    function outer() {
        let num = 100
        //隐式闭包写法
        inner = function () {
            console.log('num ', num);
        }
    }
    outer()
    inner()

    //自调用函数写法
    let fn = (function () {
        let num = 100
        return function () {
            console.log('num ', num);
        }
    })()

    fn()




</script>