[Tips]:JavaScript命名空间-阿里云开发者社区

开发者社区> 开发与运维> 正文

[Tips]:JavaScript命名空间

简介:

项目中,我们经常这样写JS, function(){}; 但函数多了不好管理且容易冲突,我们可以使用如下的方法来定义命名空间。 

   1: Namespace = new Object();
   2:  
   3: // 全局对象仅存在register函数,参数为名称空间全路径LB.MAP
   4: Namespace.register = function(fullNameSpace) {
   5:    // 将命名空间按点分成几个部分,如LB.MAP
   6:    var nsArray = fullNameSpace.split('.');
   7:    var sEval = "";
   8:    var sNS = "";
   9:    for (var i = 0; i < nsArray.length; i++) {
  10:        if (i != 0) sNS += ".";
  11:        sNS += nsArray[i];
  12:        // 依次创建构造命名空间对象(假如不存在的话)                  
  13:        sEval += "if (typeof(" + sNS + ") == 'undefined') " + sNS + " = new Object();"
  14:    }
  15:    if (sEval != "") eval(sEval);
  16: }
  17:  
  18: // 注册命名空间LB.MAP, LB.UI
  19: Namespace.register("LB.MAP");
  20: Namespace.register("LB.UI");
  21:  
  22: //声明类GoogleMap
  23: LB.MAP.GoogleMap = function(zoom, center) {
  24:    this.zoom = zoom;
  25:    this.center = center;
  26: }
  27:  
  28: // GoogleMap类添加一个公共方法show()
  29: LB.MAP.GoogleMap.prototype.Display = function() {
  30:    alert("google map zoom is"+ this.zoom+" and center is "+this.center);
  31: }
  32:  
  33: var map = new LB.MAP.GoogleMap("4X", 20.00);
  34:  
  35: // 给对象上添加方法
  36: map.MoveLeft = function() { alert("I move left"); };
  37:  
  38: map.Display();
  39: map.MoveLeft();
本文转自敏捷的水博客园博客,原文链接http://www.cnblogs.com/cnblogsfans/archive/2009/06/17/1505227.html如需转载请自行联系原作者

王德水

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章