闭包的本质: 它就是个函数
概念: 能够访问其他函数内部变量的 函数
条件:
1. 在函数中嵌套定义另外一个函数
2. 被嵌套的函数(在里面的那个),一定要访问外部函数的变量
3, 被嵌套的函数要返回
实现的原理: 通过作用域链
作用: 能持久化 局部变量, 手动 控制局部变量的回收时间
闭包的弊端: 不能够大批量的使用,会造成程序加载过慢. 极容易造成内存泄露
function big(){
var c = 10;
// 返回的方式1:
return function small(){
console.log(c);
}
//返回的方式2:
return function (){
console.log(c);
}
//返回的方式3:
function small(){
console.log(c);
}
return small; // 函数带着(), 是执行。 不带(), 只是定义
}
var test = big();
test();
来源:CSDN
作者:weixin_46174967
链接:https://blog.csdn.net/weixin_46174967/article/details/104028368