自己定义了一个对象,因该对象要做双向数据绑定操作,因开发需要所以要备份一下该对象的初始状态,但是普通的备份对象无效仍然会因双向数据绑定而导致备份对象跟着改变,请教如何用深拷贝备份初始对象。
4 回答
12345678_0001
TA贡献1802条经验 获得超5个赞
function deepClone(data){
var type = getType(data);
var obj;
if(type === 'array'){
obj = [];
} else if(type === 'object'){
obj = {};
} else {
//不再具有下一层次
return data;
}
if(type === 'array'){
for(var i = 0, len = data.length; i < len; i++){
obj.push(deepClone(data[i]));
}
} else if(type === 'object'){
for(var key in data){
obj[key] = deepClone(data[key]);
}
}
return obj;
}
浮云间
TA贡献1829条经验 获得超4个赞
纯数据对象的话可以用JSON的接口,
var obj_snapshot = JSON.parse(JSON.stringify(obj))
如果是带有function的js对象的话,那就。。。复杂点,写个克隆吧
添加回答
举报
0/150
提交
取消