在JavaScript 使用命名空间

在JavaScript中使用命名空间,更便于方法的重用和管理。直接贴源码

在模板页MasterPage.master中添加:


代码
<script type="text/javascript">
     
var  dudu= {}; 
     
/* siteinfo   */ 
     dudu.siteinfo 
= {domain:'http://www.dudu.com',shortSiteName:'嘟嘟',siteName:'嘟嘟乐园'};
     
/* userinfo */
     dudu.userinfo 
= {isLogin:true,
                      name: 小豆豆,
                     id:
121,
                     mid:doudou,
                     icon:http:
//www.dudu.com/s_img_121.jpg,
                     loginURL:''};
    
// 全局对象仅仅存在register函数,参数为名称空间全路径,如"Grandsoft.GEA"
    dudu.register = function(fullNS)
    {
      
// 将命名空间切成N部分, 比如Grandsoft、GEA 等
      var nsArray = fullNS.split('.');
      
var sEval = "";
      
var sNS = "";
     
for (var i = 0; i < nsArray.length; i++)
     {
        
if (i != 0) sNS += ".";
        sNS 
+= nsArray[i];
        
// 依次创建构造命名空间对象(假如不存在的话)的语句
        // 比如先创建Grandsoft,然后创建Grandsoft.GEA,依次下去
        sEval += "if (typeof(" + sNS + ") == 'undefined') " + sNS + " = new Object();"
     }
       
if (sEval != "") eval(sEval);
     }                               
    
</script>


具体的模块:log(日志)

独立封装出一个js文件 命名为dudu.log.js文件

内容如下:

代码
  //使用命名空间的范例
  dudu.register("dudu.log"); //此处注册
  
  dudu.log
=//添加事件
      Add: function(){
             alert(
"111");
      },
          LogRep : {
          Add : 
function(){/*code...*/},
          Edit: 
function(){ alert("222");}
          }
  }

在log.aspx页面中添加引用(套用MasterPage.master模板页):

调用方法如下:

 <input type="button" onclick="dudu.log.add();" />

 

 

 <input type="button" onclick="dudu.log.LogRep.add();" />


 

 参考:【1】 http://www.cnblogs.com/leafyoung/archive/2006/10/11/526570.html


 

posted @ 2010-01-27 20:42  clound  阅读(285)  评论(0编辑  收藏  举报