闭包就是能够读取其他函数内部变量的函数
1.在JavaScript中,函数内部是可以直接读取全局变量的,例如:
var a = 1;
function fn(){
console.log(a);
}
fn();
// 输出a的值1
2.在JavaScript中,而在函数外部是无法读取到函数内的局部变量,例如:
function fn(){
var a = 1;
}
console.log(a);
//这里就会报错
3.而闭包,就是使得函数外部可以的得到函数内的局部变量的方法,这就是它的作用和意义。接下来是例子:
function fn(){
var a=1;
function fm(){
console.log(a);
//这里fm是可以读取到它的外部,也就是fn()函数的值,获取并输出。
}
return fm;
// 将值放回到自身
//fm()就是闭包
}
var b = fn();
b();
//这里将函数执行就能得到局部函数a的值