JS之闭包

96 阅读1分钟

1:什么是闭包?

闭包可以理解为:可以其他函数内部变量的函数

2:怎么实现一个闭包?

function fn1(){
    let a=10
    function fn2(){
        console.log(a)
    }
    return fn2
}
let a=fn1() //此时a相当于fn2

a() //此时fn2就是闭包

3:闭包应用场景

1)函数外部想访问函数内部变量的场景
2)想让某个函数的变量值始终保存在内存中

4:闭包使用注意事项

1)闭包会让函数内部变量使用存在内存中,过多闭包会造成性能下降,IE浏览器上会造成内存泄漏
2)闭包可以改变函数内部的变量值,当把父函数也就是上例中的a当作对象使用要注意不要随意改变内部的变量值;

5:闭包的原理

利用作用域链层层往上查询的原理