javascript 命名空间 个人理解心得

一直对命名空间不懂;今天才知道;才发现自己很菜!今天总结下自己所学的东西吧

 

1.个人感觉命名空间就是为了解决函数的重复;或者说是函数覆盖;或冲突;

 

//  声明一个全局对象Namespace,用来注册命名空间
JavaScript 的命名空间 - 乘风直上 - 乘风直上
Namespace  =   new  Object();
JavaScript 的命名空间 - 乘风直上 - 乘风直上
JavaScript 的命名空间 - 乘风直上 - 乘风直上
//  全局对象仅仅存在register函数,参数为名称空间全路径,如"Grandsoft.GEA"
JavaScript 的命名空间 - 乘风直上 - 乘风直上
Namespace.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,依次下去JavaScript 的命名空间 - 乘风直上 - 乘风直上
        sEval  +=   " if (typeof( "   +  sNS  +   " ) == 'undefined')  "   +  sNS  +   "  = new Object(); "
    }

    
if  (sEval  !=   "" ) eval(sEval);
}
JavaScript 的命名空间 - 乘风直上 - 乘风直上

 

 

//  注册命名空间Grandsoft.GEA, Grandsoft.GCM
JavaScript 的命名空间 - 乘风直上 - 乘风直上
Namespace.register( " Grandsoft.GEA " );
JavaScript 的命名空间 - 乘风直上 - 乘风直上 Namespace.register(
" Grandsoft.GCM " );
JavaScript 的命名空间 - 乘风直上 - 乘风直上
JavaScript 的命名空间 - 乘风直上 - 乘风直上
//  在Grandsoft.GEA命名空间里面声明类Person
JavaScript 的命名空间 - 乘风直上 - 乘风直上
Grandsoft.GEA.Person  =   function (name, age)
{
    
this .name  =  name;
    
this .age  =  age;
}

JavaScript 的命名空间 - 乘风直上 - 乘风直上
JavaScript 的命名空间 - 乘风直上 - 乘风直上
//  给类Person添加一个公共方法show()
JavaScript 的命名空间 - 乘风直上 - 乘风直上
Grandsoft.GEA.Person.prototype.show  =   function ()
{
    alert(
this .name  +   "  is  "   +   this .age  +   "  years old! " );
}

JavaScript 的命名空间 - 乘风直上 - 乘风直上
JavaScript 的命名空间 - 乘风直上 - 乘风直上
//  演示如何使用类Person
JavaScript 的命名空间 - 乘风直上 - 乘风直上
var  p  =   new  Grandsoft.GEA.Person( " yanglf " 25 );
JavaScript 的命名空间 - 乘风直上 - 乘风直上 p.show();JavaScript 的命名空间 - 乘风直上 - 乘风直上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值