一、为什么需要模块化
客户端需要完成的事情越来越多,代码量也是与日俱增。 为了应对代码量的剧增,我们通常会将代码组织在多个js文件中,进行维护。 但是这种维护方式,依然不能避免一些灾难性的问题。

比如小明和小丽在不同的JS文件中都定义了flag变量名称,但是布尔值却不同
小明在页面中运行的时候发现布尔值和自己初始设置的不一样

那这个时候我们可能会使用我们闭包的函数思想去解决这个问题。

但是闭包解决了变量的重名问题却大大降低了我们代码的可复用性
如果我们希望在main.js文件中,用到flag,应该如何处理呢? 显然,另外一个文件中不容易使用,因为flag是一个局部变量
解决方案:
使用模块作为出口:我们可以使用将需要暴露到外面的变量,使用一个模块作为出口

我们在匿名函数内部,定义一个对象。 给对象添加各种需要暴露到外面的属性和方法(不需要暴露的直接定义即可)。 最后将这个对象返回,并且在外面使用了一个MoudleA接收。
那么我们在man.js中怎么使用呢?
我们只需要使用属于自己模块的属性和方法即可

随着客户端功能复杂度增加,代码量急剧增长,模块化成为管理代码的重要手段。文章讨论了传统方式下变量重名导致的问题,以及闭包解决重名但降低代码复用性的矛盾。提出使用模块作为出口,通过在匿名函数内定义对象并暴露所需属性和方法来解决这一问题,使得在main.js等其他文件中能更方便地使用特定模块的成员。

1399

被折叠的 条评论
为什么被折叠?



