闭包:函数中的函数;用于获取函数内部变量的函数;
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函数中的变量;
注意:
由于闭包会携带包含它的函数的作用域(保存着一个作用域链),因此会占用更多的内存;