闭包产生的三个条件
- 必须是嵌套关系
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();
闭包的作用
使函数内部变量在函数执行完之后继续存在于内存中(延长变量使用时间)
让函数外部能够操作函数内部的数据
例如:
function A() {
var a = "a";
function B() {
a += "a";
console.log(a);
}
return B;
}
var fun = A();
fun();
可以得出在全局中能通过fun来操作函数A()内部的变量a
欢迎关注我的前端自检清单,我和你一起成长