javascript模块化是什么及其优缺点介绍


Posted in Javascript onSeptember 02, 2013

如今backbone、emberjs、spinejs、batmanjs 等MVC框架侵袭而来。CommonJS、AMD、NodeJS、RequireJS、SeaJS、curljs等模块化的JavaScript扑面而来。web前端已经演变成大前端,web前端的发展速度之快。

1)我们来看看什么是模块化?
模块化是一种将系统分离成独立功能部分的方法,可将系统分割成独立的功能部分,严格定义模块接口、模块间具有透明性。javascript中的模块在一些C、PHP、java中比较常见:

c中使用include 包含.h文件;php中使用require_once包含.php文件
java使用import导入包
此中都有模块化的思想。

2)模块化的优缺点:

a>优点:
可维护性
1.灵活架构,焦点分离
2.方便模块间组合、分解
3.方便单个模块功能调试、升级
4.多人协作互不干扰
可测试性
1.可分单元测试

b>缺点:
性能损耗
1.系统分层,调用链会很长
2.模块间通信,模块间发送消息会很耗性能

3)最近的项目中也有用到模块化,使用的是seajs,但是当引用到jquery,jquery easyui/或者jquery UI组件时,有可能会用到很多jquery插件,那这样要是实现一个很复杂的交互时,模块间的依赖会很多,使用define()方法引入模块会很多,不知有么有什么好的方法?

4)附:
内聚度
内聚度指模块内部实现,它是信息隐藏和局部化概念的自然扩展,它标志着一个模块内部各成分彼此结合的紧密程度。好处也很明显,当把相关的任务分组后去阅读就容易多了。 设计时应该尽可能的提高模块内聚度,从而获得较高的模块独立性。

耦合度
耦合度则是指模块之间的关联程度的度量。耦合度取决于模块之间接口的复杂性,进入或调用模块的位置等。与内聚度相反,在设计时应尽量追求松散耦合的系统。

Javascript 相关文章推荐
JavaScript DOM 学习第五章 表单简介
Feb 19 Javascript
判断客户浏览器是否支持cookie的示例代码
Dec 23 Javascript
new Date()问题在ie8下面的处理方法
Jul 31 Javascript
JavaScript中对象property的删除方法介绍
Dec 30 Javascript
Javascript BOM学习小结(六)
Nov 26 Javascript
javascript设计模式之单体模式学习笔记
Feb 15 Javascript
JS实现图片放大缩小的方法
Feb 15 Javascript
JS表格组件神器bootstrap table使用指南详解
Apr 12 Javascript
微信小程序动态添加分享数据
Jun 14 Javascript
vue-prop父组件向子组件进行传值的方法
Mar 01 Javascript
JS实现图片上传多次上传同一张不生效的处理方法
Aug 06 Javascript
js实现移动端吸顶效果
Jan 08 Javascript
火狐下table中创建form导致两个table之间出现空白
Sep 02 #Javascript
js的alert弹出框出现乱码解决方案
Sep 02 #Javascript
javascript中的window.location.search方法简介
Sep 02 #Javascript
js Math 对象的方法
Sep 01 #Javascript
javascript ready和load事件的区别示例介绍
Aug 30 #Javascript
文本有关的样式和jQuery求对象的高宽问题分别说明
Aug 30 #Javascript
JS下拉缓冲菜单示例代码
Aug 30 #Javascript
You might like
php auth_http类库进行身份效验
2009/03/19 PHP
PHP的基本常识小结
2013/07/05 PHP
PHP实现单例模式最安全的做法
2014/06/13 PHP
基于PHP生成简单的验证码
2016/06/01 PHP
php实现等比例不失真缩放上传图片的方法
2016/11/14 PHP
PHP实现的贪婪算法实例
2017/10/17 PHP
基于PHP实现用户在线状态检测
2020/11/10 PHP
JQuery.Ajax之错误调试帮助信息介绍
2013/07/04 Javascript
javascript中定义私有方法说明(private method)
2014/01/27 Javascript
JavaScript表单通过正则表达式验证电话号码
2014/03/14 Javascript
javascript移出节点removeChild()使用介绍
2014/04/03 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
2016/04/26 Javascript
JS实现table表格数据排序功能(可支持动态数据+分页效果)
2016/05/26 Javascript
详解Angular.js的$q.defer()服务异步处理
2016/11/06 Javascript
IE8兼容Jquery.validate.js的问题
2016/12/01 Javascript
jQuery内容筛选选择器实例代码
2017/02/06 Javascript
VUE Error: getaddrinfo ENOTFOUND localhost
2018/05/03 Javascript
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
2019/05/27 Javascript
python使用循环打印所有三位数水仙花数的实例
2018/11/13 Python
Python 安装第三方库 pip install 安装慢安装不上的解决办法
2019/06/18 Python
python自动化测试之DDT数据驱动的实现代码
2019/07/23 Python
使用PyTorch训练一个图像分类器实例
2020/01/08 Python
python中resample函数实现重采样和降采样代码
2020/02/25 Python
python 的topk算法实例
2020/04/02 Python
如何对python的字典进行排序
2020/06/19 Python
numpy中生成随机数的几种常用函数(小结)
2020/08/18 Python
python raise的基本使用
2020/09/10 Python
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
2019/01/17 HTML / CSS
HTML5超炫酷粒子效果的进度条的实现示例
2019/08/23 HTML / CSS
主键(Primary Key)约束和唯一性(UNIQUE)约束的区别
2013/05/29 面试题
同学聚会欢迎辞
2014/01/14 职场文书
小松树教学反思
2014/02/11 职场文书
乡镇镇长个人整改措施
2014/10/01 职场文书
专题组织生活会发言材料
2014/10/17 职场文书
浅谈react useEffect闭包的坑
2021/06/08 Javascript
python解析json数据
2022/04/29 Python