首页 > 代码库 > 使用js命名空间进行模块式开发
使用js命名空间进行模块式开发
在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 namespaceLC.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命名空间进行模块式开发
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。