js中并不像c#一样具有命名空间这个概念,但是命名空间确实能够对代码进行良好的组织,尤其是在代码量比较大的情况下,下面就来介绍一下如何在javascript中模拟实现命名空间功能。

创建方式:

就是为项目或者库创建一个对象,然后将其他声明的函数或者属性全部添加到此全局对象中,实现了单全局对象的效果,这样就可以减少程序中全局性变量的个数,从而可以降低全局污染和命名冲突等隐患。

在不同的文件中给一个命名空间添加属性的时候,首先要保证这个命名空间是已经存在的,同时不对已有的命名空间造成任何破坏。

可以通过非破坏性的命名空间函数实现:
   [ 其他 ] 运行代码    下载代码
<script>
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;
};
</script>
使用方法:
   [ 其他 ] 运行代码    下载代码
<script>
KUI.utils.namespace("KUI.common");
KUI.utils.namespace("KUI.common.testing");
KUI.utils.namespace("KUI.modules.function.plugins");
KUI.utils.namespace("format");
</script>
经过上述运算KUI变化:
   [ 其他 ] 运行代码    下载代码
<script>
{
  "utils": {},
  "common": {
    "testing": {}
   },
   "modules": {
     "function": {
       "plugins": {}
     }
   },
   "format": {}
}
</script>

代码描述:javascript空间命名。javascript命名空间简单介绍



111 148



用户评论
大牛,别默默的看了,快登录帮我点评一下吧!:)      登录 | 注册



×
×
51前端

注册

×
绑定手机

请绑定手机号,在继续操作

×
单次下载支付

应付金额:279

支付完成后,回到下载页面,在进行下载

官方QQ群
意见反馈
qq群

扫描上面二维码加微信群

官方QQ群

jQuery/js讨论群
群号:642649996
Css3+Html5讨论群
群号:322131262

加群请备注:从官网了解到