JavaScript 全局变量命名空间生成函数
<script type="text/javascript">
var GLOBAL = {};
GLOBAL.namespace = function(str){
var arr = str.split("."),o = GLOBAL; //定义初始父命名空间名为 GLOBAL;
for (i=(arr[0]=="GLOBAL")?1:0; i<arr.length; i++) {
o[arr[i]] = o[arr[i]]||{}; //生成子命名空间
o = o[arr[i]]; //将子命名空间定义为父命名空间
}
}
</script>
使用方式:
<script type="text/javascript">
/*执行完此方法后,此时的命名空间有:GLOBAL = {},GLOBAL.Leon = {},第一次循环生成 GLOBAL.Leon.Wang = {},第二次循环生成*/
GLOBAL.namespace("Leon.Test");
GLOBAL.Leon.param1= "param1";
GLOBAL.Leon.Test.name = "hello";
GLOBAL.Leon.Test.Speak = function(){
...
};
</script>
注:
为了避免参数命名冲突,我们引入了此方法,GLOBAL定义为全局变量,每个工程师定义有自己的二级命名空间名,如,Leon,James,A,B...,在此基础上工程师可以自己添加三级名称,以此类推...如Leon定义了一个“Test”,则可调用 GlOBAL.namespace(“Leon.Test”) 去生成所需的命名空间。
JavaScript 全局变量命名空间生成函数的更多相关文章
- JavaScript 实现命名空间(namespace)的最佳方案——兼容主流的定义类(class)的方法,兼容所有浏览器,支持用JSDuck生成文档
作者: zyl910 一.缘由 在很多的面向对象编程语言中,我们可以使用命名空间(namespace)来组织代码,避免全局变量污染.命名冲突.遗憾的是,JavaScript中并不提供对命名空间的原生支 ...
- JavaScript全局变量与局部变量
JavaScript中存储数据值的容器称为变量.根据变量作用域可将变量分为全局变量和局部变量. 全局变量(Global Variable) 拥有全局作用域,在JavaScript代码中任何地方都有定义 ...
- JavaScript之命名空间模式 浅析
来源于:http://www.cnblogs.com/syfwhu/p/4885628.html 前言 命名空间可以被认为是唯一标识符下代码的逻辑分组.为什么会出现命名空间这一概念呢?因为可用的单词数 ...
- JavaScript之命名空间模式
前言 命名空间可以被认为是唯一标识符下代码的逻辑分组.为什么会出现命名空间这一概念呢?因为可用的单词数太少,并且不同的人写的程序不可能所有的变量都没有重名现象.在JavaScript中,命名空间可以帮 ...
- javascript 之 命名空间
注意点: 1/IIFE是现代js框架最主要的基础设施,保证变量不被污染. 2/基本上我们把命名空间等同于框架的名字. 内容 一.简单的命名空间 <input type="button& ...
- 剖析javascript全局变量和局部变量
首先要记住: javascript是弱类型语言,它只有一种变量类型(var),为变量赋值时会自动判断类型并进行转换. 全局变量和局部变量如何声明? 全局变量声明: 第一种方式(函数外) var a; ...
- javascript 全局变量 局部变量 var 与不加var的区别
一.外部的为全局,内部的为局部变量. 二.加var为局部变量(在方法内),不加var为全局变量(当方法内有一次使用后) <script type="text/javascrip ...
- Javascript全局变量的使用方法
1.demo例子说明 <script type="text/javascript"> var gDivId; //js全局变量 function geocoder(la ...
- JavaScript创建命名空间、类及类成员
JavaScript代码: //为String对象增加方法isNullOrEmpty String.isNullOrEmpty = function (a) { if (a != null & ...
随机推荐
- linux 下配置mysql区分大小写(不区分可能出现找不到表的情况)怎么样使用yum来安装mysql
Linux 默认情况下,数据库是区分大小写的:因此,要将mysql设置成不区分大小写 在my.cof 设置 lower_case_table_names=1(1忽略大小写,0区分大小写) 检查方式:在 ...
- js中几个容易混淆的概念
1. var name = "The Window";var object = {name : "My Object",getName: function(){ ...
- windows安装composer方法和使用方法
最近在学习yii2的框架的相关知识,对于yii2的许多新特性,最好还是去查看官网文档最好,如果有中文翻译的网站就更好了. 学习yii2的第一个门槛就是得安装composer这个依赖管理工具(但目前我认 ...
- mac删除顽固图标
cd /Users/shelley/Library/Application\ Support/Dock cp 10CCA448-0975-41DE-B47A-8E89FD634227.db 10 ...
- Android-5 理解context
context -- 用来访问全局信息 Application用途 Application生命周期 深入理解 Context http://blog.csdn.net/z1074971432/arti ...
- 前端面试题之js篇
前端面试也可为是鱼龙混杂,各公司面试题的种类也大不相同,有的公司注重基础语法,面试题偏于ES,有的公司偏于页面逻辑,会考差一些js的应用,现将遇到过的题和典型的题整理一下. 1. 0.2-0.1 == ...
- Java中读取文件
Java中读取文件,去除一些分隔符,保存在多维数组里面 public void readFile(String filePath) { File file=new File(filePath); Ar ...
- 【转】android TV CTS 4.0.3_r1测试
原文网址:http://blog.sina.com.cn/s/blog_539ad34301012764.html 做CTS测试已经一月有余,经过不断的摸索,现总结经验,与大家分享. 一.Downlo ...
- 【转】Android出现“Read-only file system”解决办法
原文网址:http://www.111cn.net/sj/android/44496.htm 下面介绍一篇Android出现“Read-only file system”解决办法 有碰到这类问题的朋友 ...
- 关于qt学习的一点小记录(2)
嗯...这次接了个单 要求图形界面,刚好可以巩固并学习下QT.毫不犹豫的就接了 下面记录下出现的问题: 1. QWidget和QDialog QDialog下的槽函数有accept()与reject( ...