闭包的概念
闭包是函数和声明该函数的词法环境的组合
闭包 = 函数 + 函数内可访问的所有函数外的变量
内层函数,引用外层函数上的变量,就可以形成闭包
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()
标记清除:从根部,全局出发,访问不到(无法触及)的内存空间,就会被自动回收
** 一个函数用到了它作用域之外的变量,就形成了一个闭包,它会将变量做一个拷贝再在自己的内部去使用**