javascript模块化

 

将代码模块化,可以实现代码的重用,用以支持大规模的程序开发。可以将代码组织到类来实现代码模块化也可以采用其他方式。一般,模块是一个独立的js文件,模块文件可以包含类的定义、一组相关的类、一个使用函数库等。另外,模块文件文件名应该与命名空间匹配

Javascript并没有定义用以支持模块的语言结构,例如不能通过使用imports和exports(imports和exports仍是javascript保留的关键字),很多js库和客户端框架都包含了模块系统,例如在Nodejs中可以使用require导入需要的模块。

 

代码模块化时,不同的模块必须避免修改全局执行上下文,以保证后续模块在他们所期望进行的原始上下文中进行。

1. 使用对象作为命名空间,将函数和值作为命名空间对象属性存储,而不是定义全局函数和变量,用以保持干净的全局命名空间

eg:

//定义set属性SinletonSet
var sets = {};
sets.SingletonSet = sets.AbstractEnumerableSet.extend();

//使用
var ss = new sets.SingletonSet();

 

使用时也可以将常用的值导入到命名空间中,eg:

//定义set属性SinletonSet
var sets = {};
sets.SingletonSet = sets.AbstractEnumerableSet.extend();

//使用

var set = sets.SingletonSet();
var ss = new set();

 

2.  模块中一些辅助函数或者方法如果要自爱模块外部不可见,可以将模块定义在某个函数的内部。如果想使代码在一个私有命名空间中运行,只需给这段代码奖赏前缀(function(){}())

eg:

var Set = (function invoke(){
    function Set(){
        .....
    }
    .......
    return Set;
}());

 

 

 

 

 

posted @ 2014-05-28 17:55  wishyouhappy  阅读(269)  评论(0编辑  收藏  举报