闭包原理:
闭包是指在一个函数可以把自己内部的语句和声明时所在的作用域形形成一个密封的坏境,在函数外部可以访问到函数内部的局部变量。
在js执行状态中一般函数执行完毕之后函数会被销毁,但闭包不会进行销毁,会始终保存在内存之中
function fu(){
var str = '你好'
return function name() {
return str
}
}
let a = fu()
a() // console.log(a()) 打印 '你好'
闭包的特性:
- 持久性 不会随机函数就是销毁
- 封闭性 没有提供接口 不能访问函数内部语句
function fu(){
var num=1
return function name() {
return num++
}
}
let a = fu()
a() // console.log(a()) 打印 '1'
a() // 2
a() // 3
闭包对页面的影响
- 过多使用闭包会导致内存造成溢出
- 占有内存资源过多