第一部分 还有最后的闭包没有讲...:
1.非常浅显的阅读《你不知道的JavaScript》第一部分作用域与闭包
从22分钟开始讲闭包
![](https://img2020.cnblogs.com/blog/1757442/202006/1757442-20200626090407117-1352652392.png)
厉害了。。
学到了。。。
如果要更简单的描述,模块模式需要具备两个必要条件。
1. 必须有外部的封闭函数,该函数必须至少被调用一次(每次调用都会创建一个新的模块 实例)。
2. 封闭函数必须返回至少一个内部函数,这样内部函数才能在私有作用域中形成闭包,并 且可以访问或者修改私有的状态。
一个具有函数属性的对象本身并不是真正的模块。从方便观察的角度看,一个从函数调用 所返回的,只有数据属性而没有闭包函数的对象并不是真正的模块。
![](https://img2020.cnblogs.com/blog/1757442/202006/1757442-20200626100338052-1390019007.png)