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

js对象的深层 拷贝

2014-12-26 16:09 429 查看
//对象的深层 拷贝
function deepCopy(src,dist){
dist = dist || {};
for(var i in src){
if(typeof src[i] == 'object'){
//这里一定要初始化对象,不然传递null进去,没有对象指针,
//无法将生成的对象赋值到dist[i]上
dist[i] = (src[i].constructor === Array)?[]:{};
//递归执行,dist[i] 已经赋初始值
deepCopy(src[i],dist[i]);
}else{
dist[i] = src[i];
}
}
return dist;
}

var demo = {
name : "zhangsan",
age  : 12,
prefer: ["吃饭","睡觉","喝水"],
state:{
location:"南京",
cn:"中国"
}
}
//传递一个 {} 和 (null,undefined)效果是不一样的,
//传递的是null没有对象指针,执行深拷贝后dist没有赋值。
var dist = {};
var xx = deepCopy(demo,dist);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: