JavaScript 闭包

什么是闭包?

简单理解:闭包=内层函数+外层函数的变量。正如前面所说的作用域链也会涉及到闭包,如下:

let a = 6;//全局作用域
function f() {
    a = 7;//父级作用域
    function d(){
        a = 8;//自己的作用域
        console.log(a);
    }
    d();
}
f();

 闭包的官方概念:一个函数对周围状态的引用捆绑到一起,内层函数中访问到其外层函数的作用域。

闭包的作用:封闭数据,提供操作,外部也可以访问函数内部的变量。

闭包的写法:

// 闭包:外部可以使用函数内部的变量
function outer(){
    let a = 10;
    function fn() {
        console.log(a);
    }
    return fn
}
const fun = outer()
fun()

上述代码,outer是一个闭包,其本身直接将子函数fn的值返回过来,此时并没与调用,知识单纯的返回值。

我们直接在全局作用域中就可以调用子函数fn

posted @ 2024-09-27 15:42  洛飞  阅读(5)  评论(0编辑  收藏  举报