JavaScript 编程引入命名空间的方法


Posted in Javascript onJune 29, 2007

JavaScript 代码一般最常见的语法格式就是定义函数 function xxx(){/*code...*/},经常有这样的一大堆函数定义。函数名很容易发生冲突,特别是引入多个js文件时,冲突的情况尤为明显。因此也就有引入命名空间的必要。
Javascript 本身没有命名空间的概念,需要用对象模拟出来。
比如定义一个命名空间的类,用于创建命名空间:

function NameSpace(){
}

这是一个构造函数,但却不做任何事情,再来下面和评论有关的代码:

var comment = new NameSpace();
comment.list = function(){/*code...*/};
comment.counter = 0;

第一行创建所谓命名空间(其实就是一个空白对象),名为comment,第二、三行定义该空间下的两个方法。调用时可以使用 comment.list() 或者 comment.counter++ 等;
再创建子命名空间:

comment.add = new NameSpace();
comment.add.post = function(){/*code...*/}
comment.add.check = function(){}

之所以引入命名空间的概念,是为了避免函数名相同的问题。上面的过程也可以这样定义:

var comment = {
list : function(){/*code...*/},
add  : {
 post  :  function(){/*code...*/},
 check :  function(){/*code...*/}
}
}

prototype.js 里面就大量使用这种方式,虽然这种方式更直观地像一棵树,但只要节点稍多一些,眼睛就忙于寻找这些节点的关系,命名空间的做法是横向地描述这种关系树,层次关系直接表现在字面上,两种方式效果一致,但书写风格却各有特点。

Javascript 相关文章推荐
Javascript 兼容firefox的一些问题
May 21 Javascript
通过百度地图获取公交线路的站点坐标的js代码
May 11 Javascript
javascript自动给文本url地址增加链接的方法分享
Jan 20 Javascript
Javascript字符串对象的常用方法简明版
Jun 26 Javascript
2则自己编写的jQuery特效分享
Feb 26 Javascript
jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结
Dec 24 Javascript
jQuery树控件zTree使用方法详解(一)
Feb 28 Javascript
原生js实现验证码功能
Mar 16 Javascript
微信小程序之绑定点击事件实例详解
Jul 07 Javascript
javascript变量提升和闭包理解
Mar 12 Javascript
JS实现字符串翻转的方法分析
Aug 31 Javascript
javascript-hashchange事件和历史状态管理实例分析
Apr 18 Javascript
你需要知道的JavsScript可以做什么?
Jun 29 #Javascript
ECMAScript 基础知识
Jun 29 #Javascript
javascript中的几个运算符
Jun 29 #Javascript
一个加载js文件的小脚本
Jun 28 #Javascript
javascript实现的鼠标链接提示效果生成器代码
Jun 28 #Javascript
用js实现控制内容的向上向下滚动效果
Jun 26 #Javascript
脚本安需导入(装载)的三种模式的对比
Jun 24 #Javascript
You might like
php下实现农历日历的代码
2007/03/07 PHP
php通过递归方式复制目录和子目录的方法
2015/03/13 PHP
Yii2.0中的COOKIE和SESSION用法
2016/08/12 PHP
PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解
2019/06/03 PHP
php源码的使用方法讲解
2019/09/26 PHP
javascript+xml技术实现分页浏览
2008/07/27 Javascript
jquery ui对话框实例代码
2013/05/10 Javascript
js中的前绑定和后绑定详解
2013/08/01 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
2013/11/22 Javascript
jQuery动画效果animate和scrollTop结合使用实例
2014/04/02 Javascript
javascript实现十六进制颜色值(HEX)和RGB格式相互转换
2014/06/20 Javascript
嵌入式iframe子页面与父页面js通信的方法
2015/01/20 Javascript
详解javascript跨浏览器事件处理程序
2016/03/27 Javascript
AngularJS基础 ng-src 指令简单示例
2016/08/03 Javascript
9个让JavaScript调试更简单的Console命令
2016/11/14 Javascript
微信小程序 自定义对话框实例详解
2017/01/20 Javascript
vue init webpack myproject构建项目 ip不能访问的解决方法
2018/03/20 Javascript
实例详解ztree在vue项目中使用并且带有搜索功能
2018/08/24 Javascript
express+vue+mongodb+session 实现注册登录功能
2018/12/06 Javascript
迅速了解一下ES10中Object.fromEntries的用法使用
2019/03/05 Javascript
vue 使用v-for进行循环的实例代码详解
2020/02/19 Javascript
Python 实现随机数详解及实例代码
2017/04/15 Python
利用标准库fractions模块让Python支持分数类型的方法详解
2017/08/11 Python
基于并发服务器几种实现方法(总结)
2017/12/29 Python
python实现守护进程、守护线程、守护非守护并行
2018/05/05 Python
Tensorflow 同时载入多个模型的实例讲解
2018/07/27 Python
Selenium的使用详解
2018/10/19 Python
基于python实现删除指定文件类型
2020/07/21 Python
python实现视频压缩功能
2020/12/18 Python
CSS3使用transition实现的鼠标悬停淡入淡出
2015/01/09 HTML / CSS
Kent & Curwen:与大卫·贝克汉姆合作
2017/06/13 全球购物
英国综合网上购物商城:The Hut
2018/07/03 全球购物
烹饪自我鉴定
2014/03/01 职场文书
2014年端午节活动方案
2014/03/11 职场文书
社区党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
2015会计试用期工作总结
2014/12/12 职场文书