闭包

75 阅读1分钟

2个特点:函数嵌套函数,内层函数可以访问外层函数的变量和参数 2个作用:防止变量和拉圾回收(变量持久化);防止变量和参数被外部污染(变量只在闭包内部可访问) 1个风险:滥用可能会造成内存泄露

它的作用如下 实现模块化&可以缓存函数&封装私有变量&实现函数柯里化&防抖&节流 实现模块化;

    const myMoudle=(function(){
        let count=0
        function increment(){
            count++;
        }
        function reset(){
            count=0
        }
        function getCount(){
            return count
        }
        return{
            increment,
            reset,
            getCount
        }
    })()
    myMoudle.increment()
    console.log(myMoudle.getCount())//输出1

闭包的真正作用是 突破作用域 常规是的 有一个默认的作用域链。用bind,apply,call可以改变this的指向 而闭包可以突破 参数的作用域链