var copy_data = deepCopy(data);
data.name = 'tast'
function deepCopy(data) {
// 判断是数组还是对象
if (Array.isArray(data)) {
var res = []
for (var i = 0; i < data.length; i++) {
// 判断data[i] 是否依然可能是数组还是对象
if (data[i] instanceof Object) {
var copy = deepCopy(data[i]);
res.push(copy);
} else {
res.push(data[i]);
}
}
return res
} else if (data.constructor === Object) {
var res = {};
for (var x in data) {
// 判断data[i] 是否依然可能是数组还是对象
if (data[x] instanceof Object) {
var copy = deepCopy(data[x]); // 执行深拷贝
res[x] = copy; // 将拷贝结果添加到res上
} else {
res[x] = data[x]
}
}
return res
}
}
function deepCopy(data){
// 如果不是数组或者对象,不需要深拷贝,直接返回
if(!(data instanceof Object)){
return data
}
if(Array.isArray(data)){
// 新建数组
var res = []
// 将data 中数拷贝到res中
for(var i = 0;i<data.length;i++){
res.push(deepCopy(data[i]))
}
return res
}
var obj = {}
for(var x in data){
obj[x] = deepCopy(data[x])
}
return obj
}