1、常见的一种实现方式
const info = JSON.parse(JSON.stringify(obj))
2、简单实现 deepClone
//工具函数
function isObject(value) {
const type = typeof value
return (value !== null) && (type === 'object' || type === 'function')
}
function deepClone(originValue) {
//1.判断传入的originValue是不是一个对象类型
if (!isObject(originValue)) return originValue
//2.简单实现
const newObj = {}
for (const key in originValue) {
newObj[key] = deepClone(originValue[key])
}
return newObj
}
//测试一下
const obj = {
name: '当地小有名气可爱鬼',
height: 170,
eat: {
first: '臭豆腐',
second: '榴莲'
}
}
const test = deepClone(obj)
console.log(test === obj); //false
obj.eat.first = '螺蛳粉'
console.log(test); //{ name: '当地小有名气可爱鬼', height: 170, eat: { first: '臭豆腐', second: '榴莲' } }
3、增加功能 - 处理其他数据类型
//工具函数
function isObject(value) {
const type = typeof value
return (value !== null) && (type === 'object' || type === 'function')
}
function deepClone(originValue) {
//类型判断