1、利用JSON
let obj1 = {
name: 'mys',
age: 18
}
let str = JSON.stringify(obj1)
let obj2 = JSON.parse(str)
obj1.age = 20
console.log(obj2)
2、自写一个deepClone()方法
let checkType = data => {
return Object.prototype.toString.call(data).slice(8, -1)
}
let deepClone = target => {
let targetType = checkType(target)
let res
if (targetType === 'Object') {
res = {}
} else if (targetType === 'Array') {
res = []
} else {
return target
}
for(let i in target) {
let value = target[i]
let valueType = checkType(value)
if (valueType === 'Object' || valueType === 'Array') {
res[i] = deepClone(value)
} else {
res[i] = value
}
}
return res
}
let obj1 = {
name: 'mys',
hobby: ['coding', 'eating']
}
let obj2 = deepClone(obj1)
obj2.hobby[0] = 'sleeping'
console.log(obj1)
console.log(obj2)