如何理解闭包?

1、闭包是js的副产品,当你的函数访问函数外部的变量的时候,js形成闭包,闭包实际上是作用域的逐级查找,当B函数执行完成之后销毁,此时a函数的被b函数引用,值并没有被销毁而是在内存中保存了下来

function a(){
    var count=0;
    function b(){
        count++
        console.log(count)
    }
    return b;
}
var c=a();
c();//1
c();//2

2、闭包应用优点

当想要提升性能的时候,在可控的小应用可以用内存换性能

3、闭包应用缺点

它的优点也将成为它的缺点,任何东西物极必反,闭包一旦用的过多则会占用大量内存导致应用缓慢

总结:不必纠结什么是闭包,也许你写的每一个函数都是闭包。

原文地址:https://www.cnblogs.com/iwen1992/p/12965285.html