zoukankan      html  css  js  c++  java
  • JavaScript 合作开发

    var GLOBAL = {};
    // 'str' : 'GLOBAL.A'、'A'、'A.str1'
    GLOBAL.namespace = function(str) {
      // split 字符串分割为数组
      var arr = str.split('.');
      var o = GLOBAL;
      var start = 0;
      // 判断数组内的第一个元素是否为GLOBAL;
        // 如果是,下方的for循环从第二个数组元素开始获取,否则,从头开始
      if (arr[0] == 'GLOBAL') {
          start = 1;
      } esle {
          start = 0;
      }
      // o = o[arr[i]] 的作用: 如果arr的长度大于等于2,为了形成嵌套的层级关系,将o始终等于上一级对象; 如此,o[arr[i]]就会始终为上一级对象添加子对象。
      // || {}的作用: 判断该属性在该层级是否存在,如果存在,值不变,反之,将一个对象付给该值
      for (var i = start; i < arr.length; i++) {
          o[arr[i]] = o[arr[i]] || {};
          o = o[arr[i]];
      }
    };
    
    /*
      @method 功能A:实现加法运算
      @author 工程师甲
      @connect 1234567
      @time 2015-01-01
    */
    (function() {
      var a = 1,b = 2;
      GLOBAL.namespace('A.CAT');
      GLOBAL.namespace('A.DOG');
      GLOBAL.A.CAT.name = 'mimi';
      GLOBAL.A.DOG.name = 'xiaobai';
      GLOBAL.A.CAT.move = function() {};
      GLOBAL.A.str1 = a;
      GLOBAL.A.str = b;
    })();
    /*
      @method 功能B:实现加法运算
      @author 工程师乙
      @connect 1234567
      @time 2015-01-01
    */
    (function() {
      var a = 2;
      var b = 1;
      GLOBAL.namespace('B');
      GLOBAL.B.str1 = a;
      alert(a-b); //1
    })();
    /*
      @method 功能C:实现加法运算
      @author 工程师丙
      @connect 1234567
      @time 2015-01-01
    */
    (function() {
      var a = GLOBAL.A.str1;
      var b = GLOBAL.A.str;
      alert(a*b); //2
    })();
    /*
      @method 功能D:实现加法运算
      @author 工程师丁
      @connect 1234567
      @time 2015-01-01
    */
    (function() {
      var a = GLOBAL.B.str1;
      alert(a*2); //4
    })();

      合作开发中最容易出现变量混淆, 使用对象将所有变量存储起来是较为流传的方法, 但单纯的对象存储难以应对去全局变量众多的复杂操作,因此,根据不同功能命名全局变量的属性形成一个特殊的层级(全局变量的第一层级),根据第一层级属性名划分不同功能的变量,以函数方法来承载繁琐的命名(简化代码),以注释增强代码的可维护性。

     截选至 小火柴的蓝色理想 , 如有侵权,请留言,会立即删除。

  • 相关阅读:
    加分二叉树
    逃离牧场
    [Apio2012]dispatching
    靶形数独
    POJ 1459-Power Network(网络流-最大流-ISAP)C++
    题解 最优的挤奶方案(Optimal Milking)
    [HNOI2007]紧急疏散EVACUATE (湖南2007年省选)
    【LCA求最近公共祖先+vector构图】Distance Queries
    BZOJ1143: [CTSC2008]祭祀river
    BZOJ2140: 稳定婚姻
  • 原文地址:https://www.cnblogs.com/wssjzw/p/9356314.html
Copyright © 2011-2022 走看看