码迷,mamicode.com
首页 > 编程语言 > 详细

javascript深度拷贝

时间:2017-06-22 23:52:10      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:cal   ssim   epc   property   argument   nts   for   turn   prototype   


Object.prototype.deepCopy=function(){
var obj=arguments[0]||{};
for(var i in this){
if(this.hasOwnProperty(i)){
if(isSimpleObject(this[i])){
obj[i]={};
this[i].deepCopy(obj[i]);
}else if(isArray(this[i])){
obj[i]=[];
this[i].deepCopy(obj[i]);
} else {
obj[i]=this[i];
}
}
}
return obj;
}

var isSimpleObject=function (obj) {
return Object.prototype.toString.call(obj)===‘[object Object]‘;
}

var isArray=function (arr) {
return Object.prototype.toString.call(obj)===‘[object Array]‘;
}

var obj={x:1,y:[1,2,3],z:{x:1},n:function(){return this.x}}

var obj1=obj.deepCopy();

javascript深度拷贝

标签:cal   ssim   epc   property   argument   nts   for   turn   prototype   

原文地址:http://www.cnblogs.com/TonyLearning/p/7067696.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!