模块化开发
JavaScript 原始功能
1.在网页开发的早期,JavaScript 制作作为一种脚本语言,做一些简单的表单验证或动画实现等,那个时候的代码还是很少的。* 那个时候的代码直接写在
2.随着 Ajax 异步请求的出现,慢慢形成了前后端的分离。* 客户端需要完成的事情越来越多,代码量也是与日俱增。* 为了应对代码量的剧增,通常会将代码组织在多个 js 文件中,进行维护。* 但是这种维护方式,依然不能避免一些灾难性的问题。
3.比如全局变量同名问题。4.另外,这种代码的编写方式对 js 文件的依赖顺序几乎是强制性的* 但是当 js 文件过多,比如有几十个的时候,弄清楚他们的顺序是一件比较麻烦的事情。* 而且即使把顺序弄清楚了,也不能避免上面出现的这种尴尬问题的发生。
匿名函数的解决方案
1.可以使用匿名函数来解决重名问题。* 在 aaa.js 文件中,我们使用匿名函数。(function(){var flag = true})()
2.但是如果要在 main.js 文件中用到 flag 要怎么做?* 显然,另外一个文件中不容易使用,因为 flag 是一个局部变量。
使用模块作为出口
1.可以将需要暴露在外面的变量,使用一个模块作为出口。* 在匿名函数内部,定义一个对象。* 给对象添加各种需要暴露在外面的属性和方法(不需要暴露的直接定义即可)。* 最后将这个对象返回,并且在外面使用一个 ModuleA 接收。
2.在 main.js 中,只需要使用属于自己的模块的属性和方法即可。
;
var Mo