标签:spl 添加 bsp col 工程 工程师 加法 fun 否则
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 })();
合作开发中最容易出现变量混淆, 使用对象将所有变量存储起来是较为流传的方法, 但单纯的对象存储难以应对去全局变量众多的复杂操作,因此,根据不同功能命名全局变量的属性形成一个特殊的层级(全局变量的第一层级),根据第一层级属性名划分不同功能的变量,以函数方法来承载繁琐的命名(简化代码),以注释增强代码的可维护性。
截选至 小火柴的蓝色理想 , 如有侵权,请留言,会立即删除。
标签:spl 添加 bsp col 工程 工程师 加法 fun 否则
原文地址:https://www.cnblogs.com/wssjzw/p/9356314.html