2018-05-10
2018-05-10 本文已影响0人
小付君
js的模块化
1. 引入一个文件的方式
在一个文件中访问另一个文件中的全局变量,可以通过script标签的src属性将另一个文件引入。
这种方法存在的问题是全局变量的污染,所以为了避免这种问题,我们采用其他的方式实现模块化。
2. 引入对象的方式
采用引入对象后,访问变量则需采用对象.属性的方式进行访问,此时可以有效避免全局变量的污染问题。
但是这个方式的缺点是将对象暴漏出来后,我们可以查看到对象内部的所有属性,以至于我们可以对其属性进行修改。所以,我们还需继续完善。
3. 引入立即执行函数
立即执行函数可以使得局部变量被保护起来,向外暴漏允许暴漏的内容,防止对其他的内部属性进行修改。
但如果想要在引入的模块中加入新的属性或者方法,则会存在一些问题,所以此时我们又要思考新的方式。
4. 放大模式
当多个人共同开发一个项目的时候,此时每个人都有自己的模块,为了配合多人开发,有了放大模式。这种模式也可以使在一个模块中给另一个模块中增加新的方法或者属性。
引入文件的顺序如果不注意,会报错:
5. 宽放大模式
可以解决放大模式中的依赖问题。