• [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();
  • 相关阅读:
    在线课程的总结
    数据库相关整理
    两个栈实现队列&两个栈实现队列
    Django中间件的5种自定义方法
    Python Web开发之路
    内置函数——format
    Django组件拾忆
    支付宝支付流程
    消息队列之RabbitMQ
    WebSocket
  • 原文地址:https://www.cnblogs.com/cnblogsfans/p/1505227.html
Copyright © 2020-2023  润新知