1、什么是模块化开发?html
1.web开发中将项目的实现划分为许多模块,模块其实就是将功能相关的代码封装在一块儿,方便维护
,重用;模块之间经过API进行重组。jquery
2、为何要经过模块化的方式进行开发?web
1.高内聚低耦合,有利于团队做战,当项目很复杂的时候,将项目划分为子模块分给不一样的人开发api
,最后再组合在一块儿,这样能够下降模块与模块之间的依赖关系体现低耦合,模块又有特定功能体框架
现高内聚。模块化
2.可重用,方便维护,模块的特色就是有特定功能,当两个项目都须要某种功能的时候,咱们定义函数
一个特定的模块来实现该功能,这样只须要在两个项目中都引入这个模块就可以实现该功能,不需code
要书写重复性的代码;而且当需求变动该功能须要改变的时候,咱们直接修改该模块,这样就可以模块化开发
修改全部项目的功能,维护起来很方便。htm
3.模块化开发会引起大量的js被引入到页面,而这些模块之间仍是有依赖关系,体如今引入的顺序
,其实就是模块管理的问题,
3、模块化开发的实现方式:
1.函数方式:将某种功能的代码逻辑封装到函数里面,而后再将这些函数抽取到一个独立的文件,
实现重用。可是这种方式会致使暴露的全局函数数据量太多,会污染全局。
2.命名空间方式:其实就是暴露一个全局对象,而后把实现功能的函数挂到该对象下面,最为对象
的方法。缺点是对于某些函数咱们并不想为外界所调用,而自定义对象的方法对外都是公开的没法
保证该函数不被调用。
3.使用具备私有空间的对象来实现:这种方式解决了以上几种方式没解决的问题,可是不具有扩展
性。
var demo = (function() { function private() { } function public() { } return { public: public } })();
4.使用自执行函数和window对象来实现:好比要制做一个demo模块
没有则建立一个空对象做为demo来初始化
的也就是说模块是调用jquery得api实现,若是有一个框架和jquery的api实现同样的功能此时咱们
就能够将这个模块依赖的框架修改成另外一个框架,经过改变全局对象的传入,而不影响模块的功能
(function(demo,$) { function private() { } demo.public:function () { $('.div').html('公有函数'); } // 建立或者更新window的demo模块 window.demo = demo; })(window.demo || {},jQuery); // 好比在此处修改传入的jQuery对象为zepto