最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Javascript命名空间模式代码示例

来源:动视网 责编:小采 时间:2020-11-27 20:16:56
文档

Javascript命名空间模式代码示例

Javascript命名空间模式代码示例:命名空间是通过为项目或库创建一个全局对象,然后将所有功能添加到该全局变量中。通过减少程序中全局变量的数量,实现单全局变量,从而在具有大量函数、对象和其他变量的情况下不会造成全局污染,同时也避免了命名冲突等问题然而,在不同的文件中给一个命名空
推荐度:
导读Javascript命名空间模式代码示例:命名空间是通过为项目或库创建一个全局对象,然后将所有功能添加到该全局变量中。通过减少程序中全局变量的数量,实现单全局变量,从而在具有大量函数、对象和其他变量的情况下不会造成全局污染,同时也避免了命名冲突等问题然而,在不同的文件中给一个命名空


命名空间是通过为项目或库创建一个全局对象,然后将所有功能添加到该全局变量中。通过减少程序中全局变量的数量,实现单全局变量,从而在具有大量函数、对象和其他变量的情况下不会造成全局污染,同时也避免了命名冲突等问题

然而,在不同的文件中给一个命名空间添加属性的时候,首先要保证这个命名空间是已经存在的,同时不对已有的命名空间造成任何破坏。可以通过非破坏性的命名空间函数实现:

代码如下:

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": {}
}

命名空间模式的缺点

1.需要输入更长的字符,并且需要更长的解析时间;
2.对单全局变量的依赖性,即任何代码都可以修改该全局实例,其他代码将获得修改后的实例。

文档

Javascript命名空间模式代码示例

Javascript命名空间模式代码示例:命名空间是通过为项目或库创建一个全局对象,然后将所有功能添加到该全局变量中。通过减少程序中全局变量的数量,实现单全局变量,从而在具有大量函数、对象和其他变量的情况下不会造成全局污染,同时也避免了命名冲突等问题然而,在不同的文件中给一个命名空
推荐度:
标签: js 代码 java
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top