闭包

38 阅读1分钟

一、什么是闭包?

闭包就是让内部函数访问外部函数作用域,例如

let a = 1
let b = function(){
    console.log(a)
}

二、闭包的作用

1.从外部读取函数内部的变量,例如

function f1(){
    let a = 123;
    function f2(){
        console.log(a);
    }
    return f2;
}
let b = f1();
b();

2.让这些变量的值始终保持在内存中,不会在function调用后被自动清除

function f1(){
    let n=10;
    function f2(){
        console.log(n++);
        
    }
    return f2;
}
let b=f1();
b();

三、闭包的优缺点

优点:避免全局变量的污染 缺点:因为一段内存空间内的函数空间不会被销毁,常驻内存会增大内存使用量