闭包

22 阅读1分钟

闭包

什么是闭包

  • 红宝书(第四版) p-309:闭包指的是那些引用了另一个函数作用域中变量的函数,通常是在嵌套函数中实现的。
  • 个人理解:闭包是指有权访问另一个函数作用域中变量的函数。

如何形成闭包

内部的函数存在外部作用域的引用就会导致闭包。

闭包的优点

可以保护变量不受外界污染。(只读)

闭包的缺点

常驻内存,消耗性能。

怎么写一个闭包

代码如下:

//声明一个函数
function outer(){
    let name = 10;
    //内部嵌套一个函数
    function inner(){
    //返回外部函数的变量
        return name
    }
    return inner
}

常见闭包例子:

vuex

常见用法:

利用闭包实现模块化。