Javascript 模块化编程
记的刚开始用JS写代码的时候,都是一个方法一个方法的处理某个事情,比如
function check(){ do something..... }
这样写的好处就是方便,什么时候用,什么时候写,但是坏处就是污染了全局空间,很容易出现重复的名字,而且不容易维护。
后来想到了用命名空间来解决全局空间的问题,比如下面的写法
var com={}; var com.do={}; com.do.get=function(){};
这样,方法名字就不会污染全局空间了,而且不同的人写的方法命名空间也会不一样,但是也有一个坏处那就是,每次调用一个方法的时候,都得写老长的名字,比如com.do.get(),这样很不人性化。
所以模块化的概念就出来了,把每一个功能集合放在一个模块里,每个想引用别的模块的功能是,调用require即可,目前模块化编程规范有CMD和AMD,下面我就拿玉伯的seaJS模块类库来说说,怎么在程序里进行模块化编程。
使用seajs开发模块的时候,要遵守CMD规范,一个文件就是一个模块,比如项目中通常会定义一个通用的JS文件,放一些常有的功能,可以如下定义
//文件名为util.js
define(function(require,exports){ exports.showMsg(msg){ console.log(msg); }; });
页面中调用可以这样写
<script src="seajs.js"></script> <script> seajs.use("util",function(util){ util.showMsg("hello world!"); }); </script>