JavaScript 全局变量命名空间生成函数

 1 <script type="text/javascript">
 2           var GLOBAL = {};
 3           GLOBAL.namespace = function(str){
 4               var arr  = str.split("."),o = GLOBAL;                //定义初始父命名空间名为 GLOBAL;
 5               for (i=(arr[0]=="GLOBAL")?1:0; i<arr.length; i++) {
 6                   o[arr[i]] = o[arr[i]]||{};                       //生成子命名空间
 7                   o = o[arr[i]];                                   //将子命名空间定义为父命名空间
 8                }
 9           }
10 </script>

使用方式:

 1 <script type="text/javascript">
 2
 3          /*执行完此方法后,此时的命名空间有:GLOBAL = {},GLOBAL.Leon = {},第一次循环生成  GLOBAL.Leon.Wang = {},第二次循环生成*/
 4          GLOBAL.namespace("Leon.Test");
 5
 6          GLOBAL.Leon.param1= "param1";
 7
 8          GLOBAL.Leon.Test.name = "hello";
 9          GLOBAL.Leon.Test.Speak = function(){
10             ...
11          };
12
13  </script>

注:

为了避免参数命名冲突,我们引入了此方法,GLOBAL定义为全局变量,每个工程师定义有自己的二级命名空间名,如,Leon,James,A,B...,在此基础上工程师可以自己添加三级名称,以此类推...如Leon定义了一个“Test”,则可调用   GlOBAL.namespace(“Leon.Test”)  去生成所需的命名空间。

JavaScript 全局变量命名空间生成函数

时间: 2024-10-05 21:18:13

JavaScript 全局变量命名空间生成函数的相关文章

【转】Javascript全局变量var与不var的区别

相信你对全局变量一定不陌生,在函数作用域里用a=1这种形式定义的变量会是一个全局变量,在全局作用域里,用下面3种形式都可以创建对全局可见的命名: 1 <script> 2 var a = 1; 3 b = 2; 4 window.c = 3; 5 </script> 对于b=2这种方式, 它其实和c是一样的,在执行这个赋值语句的时候,会沿着作用域链寻找名字叫做b的变量,一直找到作用域链的顶端还没有找到,于是给window添加一个属性b然后赋值. var与不var有两个区别: 1 v

Javascript全局变量的使用方法

1.demo例子说明 <script type="text/javascript"> var gDivId; //js全局变量 function geocoder(lastLon,lastLat,result) { alert("lastLon:"+lastLon); alert("lastLat:"+lastLat); alert("result:"+result); gDivId = result; //赋值给

javascript全局变量

<script> var  a=1; b=2; window.c=3; </script> 对于b=2这种方式, 它其实和c是一样的,在执行这个赋值语句的时候,会沿着作用域链寻找名字叫做b的变量,一直找到作用域链的顶端还没有找到,于是给window添加一个属性b然后赋值 javascript全局变量

JavaSCript全局变量与局部变量

今天公司一个实习小妹子问我两段js代码的区别: [javascript] view plain copy <script type="text/javascript"> var a = "Hello"; function test(){ var a; alert(a); a = "World"; alert(a); } </script> [javascript] view plain copy <script ty

javascript 全局变量 局部变量 var 与不加var的区别

  一.外部的为全局,内部的为局部变量.   二.加var为局部变量(在方法内),不加var为全局变量(当方法内有一次使用后) <script type="text/javascript"> var golbe="global"; test(); function test(){ var local="local"; document.write(golbe); document.write(local); } document.wr

JavaScript函数命名空间、参数类型重载实现

有时候使用doFunc({arg1: xxx, arg2:xxx});不方便,还是得在参数表重载,而重载情况又多种多样弄得晕头转向,结果就试着写了这么个东西,也不知道有没有地方能用上: <!DOCTYPE html> <html lang="zh"> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

javaScript 全局变量和局部变量

如果在一个函数中定义了一个变量后,当每次调用这个函数时,才有可能访问到这个变量,简单说在这个函数体内作用域才有用.超出这个范围是没有用的. 而全局变量:如果在函数外定义一个变量,那么这个变量就是一个全局变量.且该变量在持续的范围内都可以被访问和修改.这就是全局变量.假如,在一个函数中定义了一个变量,在函数外定义也定义相同的变量名. 例: var  fun=9;  ................1 function funC ()   ...........2 { fun=10;} alert(

【JavaScript】 命名空间污染解决

闭包解决命名空间污染问题 var init = (function () { var name = "zhangsan", age = 12, sex = "male", _class = 2019 function sayName() { console.log(name); } function sayAge() { console.log(age); } return function () { sayName(); sayAge(); } }()) init

JavaScript基础篇

本章内容: 简介 定义 注释 引入文件 变量 运算符 算术运算符 比较运算符 逻辑运算符 数据类型 数字 字符串 布尔类型 数组 Math 语句 条件语句(if.switch) 循环语句(for.for in.while.do-while) label语句 异常处理 函数 定义函数3种方式 函数参数(arguments) 作用域与作用链 闭包 面向对象(特性,构造模式,原型模式prototype) prototype 验证方法(isPrototypeOf.hasOwnProperty.in) 其