闭包:函数中的函数;用于获取函数内部变量的函数;
function A(){
var info = "hello";
var B = function(){
return info;
}
return B;
}
console.log(info) // 报错(info is not defined)
console.log(A()()) // "hello"
在全局作用域中,如果想访问A函数中的变量info,直接访问会报错,因为A函数体是个作用域,父作用域无法访问子作用域中的变量;
但是可以通过闭包的形式访问A函数中的变量;
注意:
由于闭包会携带包含它的函数的作用域(保存着一个作用域链),因此会占用更多的内存;