闭包最重用的一个作用是模块化。私有化变量或方法,通过暴露出一些变量或方法和外部做交流。
function foo(){
var a=0;
var b=0;
function add(){
b=a+10;
console.log(b)
}
function bar(){
add();
}
function getB(){
return console.log(b);
}
return{
bar:bar,
getB:getB
}
}
var bar = foo();
bar.bar(); //10
bar.getB(); //10
foo 可以理解为一个模块,内部声明了一些私有变量和方法,也对外界暴露了一些方法,在执行的过程中产生了一个闭包。