Javascript 模块化实践

 怎么在Javascript中实现模块化呢?

一, 对象封装法

var Math = {

    add : function (a, b) {
        return a + b;
    },
    
    minus : function (a, b) {
        return a - b;
    }

}

Math就是简单的一个模块,可以很方便的调用模块中的add,minus方法.  

 二, 立即执行函数(闭包)

var Math = (function() {

var zero = 0;
function add(a, b) {
return a + b; }
function minus(a, b) {
return a - b; }
return { add: add, minus: minus }
})();

 

 上面两种方式,都是会产生一个全局变量Math,通过这个全局变量也就是模块名来调用模块里面的方法.JS中的模块就是这样,一个模块即一个全局变量名称,像我们熟悉的jQuery,underscore也是如此.

模块可能要扩展:

var Math = Math || {};

Math.abs = function( n ) {
    if ( n >= 0) {
        return n;
    } else {
        return -n;
    }
}

对闭包方式也是可以的:

var Math = (function (m) {
    m.abs = function( n ) {
        if( n >= 0 ) {
            return n;
        } else {
            return -n;
        }
    }
})(Math || {})

 

 下一节开始讲讲Javascript模块化编程的最佳实践---requireJS.

 

posted @ 2013-12-16 21:41  果皮  阅读(137)  评论(0)    收藏  举报