闭包初识

22 阅读1分钟
     *  闭包 
     *      1. 需要 直接 或者 间接的 返回一个 函数
     *      2. 内部函数需要访问 外部函数的局部变量
     * 
     *      好处:
     *          延长变量的生命周期, 在函数外可以使用函数内的变量
     * 
     *      弊端:
     *          执行空间不会被销毁, 如果大量使用会造成内存泄露
        function outter() {
            let a = 100
            let obj = {
                name: 'outer函数',
                age: '随意'
            }

            function inner() {
                // console.log(a)
                // console.log(obj)

                // return a
                return obj
            }

            // 1. 直接返回一个函数
            return inner
        }

        const newFn = outter()

        // console.log(newFn)  // 得到一个函数(inner)
        let num = newFn()
        console.log(num)