js克隆对象

2014/12/04 14:14
阅读数 24

在js中并没有对象克隆功能,因此需要我们自己实现。通过调用constructor(函数构造器)和递归调用进行深克隆。

代码如下:

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; 
}




展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部