您的位置:首页 > Web前端 > JavaScript

js对象的拷贝

2018-03-28 11:17 344 查看
对象浅复制Object.prototype.clone = function(){
var newObj = {};
for(var i in this){
newObj[i] = this[i];
}
return newObj;
}上面代码只复制对象的基本类型属性。
对象深拷贝Object.prototype.clone = function(){
var newObj = {};
for(var i in this){
        if(typeof this[i]=="object"||typeof this[i]=="function"){
newObj[i] = this[i].clone();
}else{
newObj[i] = this[i];
}
}
return newObj;
}

Array.prototype.clone = function(){
var newArr = {};
for(var i=0;i<newArr.length;i++){
if(typeof this[i]=="object"||typeof this[i]=="function"){
newArr[i] = this[i].clone();
}else{
newArr[i] = this[i];
}
}
return newArr;
}

Function.prototype.clone = function(){
var that = this;
var newFun = function(){
return that.apply(this,arguments);
}
for(var i in this){
newFun[i] = this[i];
}
return newFun;
}深拷贝要实现基本数据类型,还有多种不等同对象,对象内部还有复杂结构,所以要用到递归。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: