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.
If you have a dream,
catch it
and
protect it.