深克隆:
var lilei={
sname:"Li Lei",
sage:11,
address:{
city:"北京",
street: "万寿路"
}
}
function clone(oldObj){
//在此填写作业代码,实现下方代码的要求
var newObj={};
for(var key in oldObj){
//如果旧对象中当前属性值不是object类型
if(typeof oldObj[key]!="object"){ //才直接复制属性值到新对象
newObj[key]=oldObj[key];
}else{//否则如果旧对象中当前属性值是引用类型的对象
//就要对这个子对象,递归调用相同的克隆函数,获得子对象的克隆,再保存到对应属性中。
newObj[key]=clone(oldObj[key])
} }
return newObj;
}
var lilei2=clone(lilei);
console.log(lilei2);
console.log(lilei);
console.log(lilei==lilei2);
console.log(lilei.address==lilei2.address)
var lilei={
sname:"Li Lei",
sage:11,
address:{
city:"北京",
street: "万寿路"
}
}
function clone(oldObj){
//在此填写作业代码,实现下方代码的要求
var newObj={};
for(var key in oldObj){
//如果旧对象中当前属性值不是object类型
if(typeof oldObj[key]!="object"){ //才直接复制属性值到新对象
newObj[key]=oldObj[key];
}else{//否则如果旧对象中当前属性值是引用类型的对象
//就要对这个子对象,递归调用相同的克隆函数,获得子对象的克隆,再保存到对应属性中。
newObj[key]=clone(oldObj[key])
} }
return newObj;
}
var lilei2=clone(lilei);
console.log(lilei2);
console.log(lilei);
console.log(lilei==lilei2);
console.log(lilei.address==lilei2.address)
return JSON.parse(JSON.stringify(oldObj))
}
copyArr: function (arr) {
return arr.map(function (e) {
if (typeof e === 'object') {
return Object.assign({}, e)
} else {
return e
}
})
}