JavaScript:对象复制

javascript里面对象的等号赋值操作是引用方式,如果想要使用拷贝赋值操作需要实现像java中clone一样的功能,实现方法就是逐项拷贝对象的内容。实现如下:

方法一:

function clone(myObj){  
  if(typeof(myObj) != 'object') return myObj;  
  if(myObj == null) return myObj;  
    
  var myNewObj = new Object();  
    
  for(var i in myObj)  
     myNewObj[i] = clone(myObj[i]);  
    
  return myNewObj;  
}  

方法二:通过object原型扩展实现

Object.prototype.Clone = function()  
{  
    var objClone;  
    if ( this.constructor == Object ) objClone = new this.constructor();  
    else objClone = new this.constructor(this.valueOf());  
    for ( var key in this )  
     {  
        if ( objClone[key] != this[key] )  
         {  
            if ( typeof(this[key]) == 'object' )  
             {  
                 objClone[key] = this[key].Clone();  
             }  
            else  
             {  
                 objClone[key] = this[key];  
             }  
         }  
     }  
     objClone.toString = this.toString;  
     objClone.valueOf = this.valueOf;  
    return objClone;  
}   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值