在JScript中复制对象

Object.clone  =   function (source)
{
    
if (source  ==   null ||   ! source.constructor) return   null ;
    
var  dest;

    
switch (source.constructor.toString())
    {
        
case  Boolean.toString():
        
case  Number.toString():
        
case  String.toString():
            dest 
=  source;
            
break ;
        
case  Date.toString():
            dest 
=   new  Date(source);
            
break ;
        
case  Object.toString():
            dest 
=  {};
            
for (p  in  source)
            {
                dest[p] 
=  Object.clone(source[p]);
            }
            
break ;
        
case  Array.toString():
            dest 
=  [];
            
for ( var  i  =   0 ; i  <  source.length; i ++ )
            {
                dest[i] 
=  Object.clone(source[i]);
            }
            
break ;
        
case  Function.toString():
            eval(
" try{var fun =  "   +  source.toString()  +   " ; dest = fun;}catch(ex){dest = null;} " );
            
break ;
        
default :
            dest 
=   null ;
    }
    
return  dest;
}

Object.prototype.clone 
=   function ()
{
    
return  Object.clone.apply( this , [ this ]);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值