Vue项目中封装深拷贝代码 递归实现 ----终极版
1.封装
// 方法写在methods里 调用加this 如果不是vue项目递归调用去掉this
// 深拷贝
deepClone(obj) {
// 根据传入对象判断是对象还是数组 并创建
let objClone = Array.isArray(obj) ? [] : {}
if (obj && typeof obj === 'object') {
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
//判断ojb的子元素是否为对象,如果是对象,递归拷贝
if (obj[key] && typeof obj[key] === 'object') {
objClone[key] = this.deepClone(obj[key])
} else {
//如果不是,简单复制
objClone[key] = obj[key]
}
}
}
}
return objClone
}
2.使用
this.form = this.deepClone(this.batchData)
成功~
本文介绍了一个Vue项目的深拷贝方法,通过递归实现对复杂对象的完全复制,确保了源对象与拷贝对象间的独立性。
707

被折叠的 条评论
为什么被折叠?



