1. 概括
闭包就是能够读取其他函数内部变量的函数,或者子函数在外调用(子函数所在的夫函数的作用域不会被释放)
2. 闭包产生条件
- 函数嵌套
例如:
function A() {
function B() {
}
}
- 内部函数引用了外部函数中的数据(属性、函数)
例如:
function A() {
var a = "a";
function B() {
console.log(a);
}
}
- 执行外部函数(也可理解为定义内部函数)
例如:
function A() {
var a = "a";
function B() {
console.log(a);
}
}
A();
3. 闭包的作用
- 使函数内部变量在函数执行完之后继续存在于内存中(延长变量使用时间)
- 让函数外部能够操作函数内部的数据
例如:
function A() {
var a = "a";
function B() {
a += "a";
console.log(a);
}
return B;
}
var fun = A();
fun();
可以得出在全局中能通过fun来操作函数A()内部的变量a
4. 闭包的生命周期
- 产生:内部函数被定义执行时
- 死亡:内部函数不再被调用(成为垃圾对象)
版权声明:本文为weixin_44901846原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。