Javascript 命名空间模式
2024-10-16 01:47:34
命名空间是通过为项目或库创建一个全局对象,然后将所有功能添加到该全局变量中。通过减少程序中全局变量的数量,实现单全局变量,从而在具有大量函数、对象和其他变量的情况下不会造成全局污染,同时也避免了命名冲突等问题。
然而,在不同的文件中给一个命名空间添加属性的时候,首先要保证这个命名空间是已经存在的,同时不对已有的命名空间造成任何破坏。可以通过非破坏性的命名空间函数实现:
var KUI = KUI || {}; KUI.utils = KUI.utils || {}; KUI.utils.namespace = function(ns){ var parts = ns.split("."), object = KUI, i, len; if(parts[0] === "KUI"){ parts = parts.slice(1); } for(i = 0, len = parts.length; i < len; i+=1){ if(!object[parts[i]]){ object[parts[i]] = {}; } object = object[parts[i]]; } return object; };
用法:
KUI.utils.namespace("KUI.common"); KUI.utils.namespace("KUI.common.testing"); KUI.utils.namespace("KUI.modules.function.plugins"); KUI.utils.namespace("format");
看一下经过上述后KUI都有什么:
{ "utils": {}, "common": { "testing": {} }, "modules": { "function": { "plugins": {} } }, "format": {} }
命名空间模式的缺点
- 需要输入更长的字符,并且需要更长的解析时间;
- 对单全局变量的依赖性,即任何代码都可以修改该全局实例,其他代码将获得修改后的实例。
最新文章
- 转:ProgressMonitorDialog
- border在IE6设置transparent无效
- MapGuide Maestro 5.1发布了
- 基于busybox和LFS的linux系统定制
- phalcon: 视图集成(内嵌模板)
- javascript——集合类
- PHP生成数字+字符混合型字符串
- C++ 习题 输出日期时间--友元类
- My97DatePicker显示时间控件的使用方法
- Linux 上做免密码登陆
- STL中map的用法
- SharePoint Online Add-in 开发简介
- Android为TV端助力 Service 两种启动方式的区别
- python2.x版本与python3.x版本的区别以及运算符
- (转)Web.config配置文件详解
- IDEA 类图功能使用方法
- HTML DOM 学习笔记
- windows下使用sed和tee命令
- webpack系统配置
- 【JS】【1】JavaScript屏蔽Backspace键(避免点击后页面产生回退)
热门文章
- 98、EditText 按键盘查询 触发事件
- dedeCMS安装,前端样式不显示
- play framework (一)
- 反人类的MyEclipse之-MyEclipse设置Console字体大小
- 最最基层的ajax交互代码jquery+java之间的json跨域传递以及java的json代码返回
- jQuery制作图片的等比例缩放
- [Android疑难杂症]动态改变Background后Padding无效的问题
- BPMN
- oracle参数open_cursors和session_cached_cursor详解!
- maya user guider第一课,一些基本概念