闭包是什么?闭包的作用是什么?

435 阅读1分钟

闭包的概念

闭包是函数和声明该函数的词法环境的组合

闭包 = 函数 + 函数内可访问的所有函数外的变量

内层函数,引用外层函数上的变量,就可以形成闭包

function fn (){
     let num = 1  
     function inner () {
          console.log(num)
     }
     return 	inner
}
let result = fn()
result()

闭包的作用:实现数据的私有

function fn(){
    let count = 0 
    function inner(){
    count++
    console.log('函数被调用了'+count+'次')
    }
    return inner
}
const add = fn()
add()
add()

标记清除:从根部,全局出发,访问不到(无法触及)的内存空间,就会被自动回收

** 一个函数用到了它作用域之外的变量,就形成了一个闭包,它会将变量做一个拷贝再在自己的内部去使用**