码迷,mamicode.com
首页 > Web开发 > 详细

使用js命名空间进行模块式开发

时间:2014-12-01 23:49:52      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   ar   color   os   使用   sp   java   

      在java中,为了防止命名冲突和模块式开发,会有个一个import 关键字来进行导包。

  在js中为了达到同样的效果,我们也通过给其自定义一个“包”的概念。

  直接上代码:

  首先有个LC.js文件:

  

//LC.js

var
LC = LC || {}; LC.namespace = function(namespace) { var nsparts = namespace.split("."); var parent = window; if (nsparts[0] === "LC") { nsparts = nsparts.slice(1); parent = LC; } for (var i = 0; i < nsparts.length; i++) { var partname = nsparts[i]; if (typeof parent[partname] === "undefined") { parent[partname] = {}; } parent = parent[partname]; } return parent; }; // alias namespace LC.ns = LC.namespace;

    设计思路:将命名空间,即”包“名通过参数传递到此方法中,然后将这个”包名“通过字符串解析,将其注册到window对象中,来充当window对象的属性,

通过一种类似递归的方式,来处理子包。

  使用的方法:

    

//Test.js
LC.ns("app.admin").test = (function() { function init() { alert("init") } function doSomething() { alert("doSomething"); } return { init : init, doSomething : doSomething

};
 })();

       在页面调用Test.js 即需要引入这两个文件,调用某个方法:

<script >
     app.admin.test.init();
    app.admin.test.doSomething();

</script>

   这样就通过这种命名空间的方式来减少js方法命名的重复了。

使用js命名空间进行模块式开发

标签:style   blog   io   ar   color   os   使用   sp   java   

原文地址:http://www.cnblogs.com/lic309/p/4136292.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!