日期:2014-05-16  浏览次数:20478 次

自定义javascript的clone方法
在网上找到的clone方法代码:
方法一:定义一个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;
}