1、闭包
- 函数嵌套函数,内部函数就是闭包
- 正常情况下,函数执行完成,内部变量会销毁(释放内存空间)
- 但闭包,内部函数没有执行完成,外部函数变量不会被销毁
- 作用域链:就是查找数据,一层一层往上找,一直找到全局变量
<script> // 1、闭包:函数里面嵌套函数,里面的函数就叫做闭包 // 2、作用域链:就是查找数据,一层一层往上找,一直找到全局变量 // 3、正常情况下,函数执行完成,内部变量会销毁(释放内存空间) // 4、闭包,内部函数没有执行完成,外部函数变量不会被销毁 let a = 10; let b = 20; function outerFun() { let a = 30; let c = 40; function innerFun() { console.log(a); // 30 console.log(b); // 20 } return innerFun(); } let fn = new outerFun(); </script>