作用域:规定变量在什么地方可以用,在什么地方不能用。
// 全局作用域
function a1(){
// a1 作用域
function a2(){
// a2 作用域
}
}
闭包:一个具有封闭的对外不公开的包裹结构或者空间
为什么函数可以构成闭包?
闭包是一个具有封闭与包裹功能的结构,是为了实现具有私有访问空间的函数的。
函数内部定义的数据函数外部无法访问,即函数具有封闭性,函数可以封装代码即具有包裹性,所以函数可以构成闭包。
闭包有什么作用:保存自己的私有变量,通过提供的接口方法给外部使用,但外部不能直接访问该变量。
闭包的缺点:常驻内存,会增大内存使用量,容易造成内存泄露。