概念:闭包就是能够读取其他函数内部变量的函数。在本质上,闭包是将函数内部和函数外部连接起来的桥梁。所以,外部函数调用之后其变量对象本应该被销毁,但闭包的存在使我们仍然可以访问外部函数的变量对象。
function outer() { var a = 1; //定义一个内部变量 return function() { return a; //返回a变量值 } }
var b = outer();
console.log(b()); //打印:1
产生一个闭包
创建闭包最常见方式,就是在一个函数内部创建另一个函数。下面例子中的 closure 就是一个闭包:
function func() { var a= 1, b = 2; function closure() { //闭包 return a + b; //返回a+b的值 } return closure; //返回闭包函数 }