1.闭包分为全局作用域和局部作用域
- 在全局作用域下声明的变量就是全局变量
- 在局部作用域下声明的变量就是局部变量。
代码如下:
闭包的作用:
1.可以使外部函数的变量在函数调用完成之后依然存在在内存中(延长了该变量的生命周期)
2.可以在函数外部访问到函数内部的变量
2.闭包的理解
闭包:在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。一般情况下,在我们认知当中,如果一个函数结束,函数的内部所有东西都会释放掉,还给内存,局部变量都会消失。但是闭包是一种特殊情况,如果外函数在结束的时候发现有自己的临时变量将来会在内部函数中用到,就把这个临时变量绑定给了内部函数,然后自己再结束。经常用闭包来实现面向对象编程
闭包的好处:可以读取其他函数内部的变量,并将其一直保存在内存中。
坏处: 可能会造成内存泄露或者内存溢出
3.闭包的模块使用:
定义一个只含有特定功能的js文件,其中函数模块会向外暴露出一个对象,
只需要通过模块暴露出来的对象调用方法就可以实现相应的功能
需要在b文件里面写好模块 , 再去a文件里引用然后调用即可