什么是闭包
方法里放回一个方法
// 简单的闭包
function a() {
let i = 1;
return function () {
return i
}
}
闭包存在的意义
1、延长变量的声明周期(永久存在内存当中 慎用)
2、创建私有的环境
顺便提一下 作用域链
我对于它的理解是: 找爸爸
下面这段代码:会输出小三
如果在fn3里面找不到 name 的话就会去找 fn2 里面的 name
就近原则:在本方法里面找不到 就去爸爸那找
let name = '小明'
function fn2() {
let name = '小李'
function fn3 () {
let name = '小三'
console.log(name)
}
fn3()
}
fn2()
注意:
1·、全局变量 它会污染其他的局部变量
2、不会存在内存当中
3、vue中的data(){return{}} 就是一个闭包