
上QQ阅读APP看书,第一时间看更新
1.1.2 模块化开发
了解了模块化后,读者可能有些疑问,模块化虽然有很多优势,但是它具体解决了编程人员在开发过程中的哪些问题?下面看一下非模块化开发会遇到哪些问题。
1.命名冲突
在多人协作开发应用,或者使用第三方开发的JavaScript库的时候,通常会遇到命名冲突问题,例如全局变量中名称重复会报错,示例代码如下:

另外,如果引用第三方的JavaScript库,在全局对象中声明了一个属性foo,自己的代码中也会声明同样名称的属性,两者一同使用的时候,后加载的属性值会替换之前的值,从而造成错误。
模块化开发的优点在于可以解决上述问题,让开发人员能很好地与他人协同,程序方面进行代码复用。那么,模块化是如何解决命名空间的呢?在1.2节中会有详细讲解。
2.文件依赖
在开发过程中,可能需要很多文件依赖,示例代码如下:

从上述代码中,./aaa.js是依赖于./a.js文件的,但是从代码上并不能看出这样的关系。如果将./aaa.js与./a.js的前后位置调换,或者删除./a.js文件,就会导致程序错误。
而在模块化开发中,会使用JavaScript代码来加载所需要的文件,并不需要将所有的文件引入到HTML文件中。