闭包

86 阅读1分钟

闭包

  • 1、函数嵌套,内部函数就是闭包
  • 2、闭包可以作为返回值,内部函数没有执行完成,外部函数内存空间不会被销毁
  • 3、内部函数可以访问外部函数的变量
  • 4、实现模块化或者封装代码
function outerFun(){
    let n = 10
    function innerFun (){
        console.log(n)
    }
        return innerFun
}
let fun = outerFun()
fun()  //10

闭包的作用:封装------将一个功能放到一个模块中

自己封装一个模块

var a  = (function(){}
    var n =10
    var m = 20
    function add(){
        console.log(n + m)
    }
    return add;
)()

var b = (function(){
    var n = 1000
    var m = 2000
    function desc(){
        console.log(m - n)
    }
    return desc
})()