目录

模块化

 

何谓模块化

模块是系统的物理组成单位,每个模块的内部实现对外隐藏,模块之间可以形成一个层次结构,最终构成一个完整的系统。

软件设计最基本的原则就在于如何将系统更好的模块化。

系统通过组合各个模块来实现。当然,不仅仅是单纯的将系统分割成各个模块就可以了。各个模块很容易组合才是模块化设计的关键。

实现方法

JavaScript原本是用于WEB浏览器端让网页能够具备一定动态能力的脚本语言,并不存在开发通用应用程序的API规范的一个定义。 目前大家使用的模块化方法主要有以下几种:

使用名字空间

这个是模块化方法中最简单的一种方法,在全局环境中定义名字空间,在名字空间中封装属性和方法。

var ns = {} || ns;
ns.obj1 = 'obj1';
ns.func1 = function() {};

dojo以及jquery、extjs等库都是将扩展代码放在各自定义的名字空间里,从而有效的实现了各种库的共存.

现在已经是尽量不用名字空间了,但在AJAX,RIA开发的黎明期,这个曾经是最主流的方法。

使用即時函数

名字空间,难以隐藏内部变量。因此,名字空间+即时函数就成为一种选择。将变量封进函数的执行环境即闭包中,仅将外部访问的对象通过名字空间开放出去。

(function() {    
  var ns = {},
      var1= 'var1';

  ns.obj1 = 'obj1';
  ns.func1 = function() {
     return var1;
  };

  window.ns = ns;
})()

CommonJS规范

AMD规范