一、网站越来越复杂,js代码、js文件也越来越多,会遇到什么问题?
1.命名冲突
2.文件依赖问题:由于js文件是按顺序执行的,若多个js文件相互依赖,则必须写好他们的顺序。
二、 什么是模块化
1.职责单一
2.生产效率高
3.便于后期维护
三、模块化开发演变
-全局函数
-对象封装-命名空间
-私有共有成员分离
-模块化规范AMD和CMD
四、非模块化开发的问题
命名冲突
文件依赖的问题
五、对象封装
- 用命名空间的方式进行封装
- 先约定命名的规范的形式
- 对象里面的属性和方法很容易被修改掉,很不安全
六、划分私有空间
-通过匿名函数自执行的方法封装模块,
-可以保护私有变量和方法
例如划分:命名空间
-a)var name = {}
-b)通过约定的方式定义的
-c)可以解决命名冲突的问题,但是不好
-d)驼峰命名和匈牙利命名
-e)缺点:没法做私有性封装
七、模块的维护扩展
- 开闭原则,对修改关闭,对扩展开放。
- 增加了代码的健壮性和容错性
八、模块的第三方依赖
- 模块职责唯一性
- 把依赖的模块,通过依赖注入的形式,在你的参数上进行体现。
// 封装性 划分私有空间
// 封装性 划分私有空间
// 开闭原则 对直接修改关闭、拓展开放
var calculator = (function(cal) {
cal.add = function(a, b) {
return a+b;
}
cal.substract = function(a, b) {
return a-b;
}
return {
add: cal.add,
substract: cal.substract
};
})(window.calculator || {}, window.$);// 还可以引入第三方jquery插件
// 拓展
calculator.mutiply = function(a, b) {
return a*b;
}
// 调用
calculator.add(1,3);
九、总结
- 最大的问题,规范的问题
- 如果在多人协作开发过程中,会有很大的问题
- 多人协作开发过程中:代码的风格一定要统一