写一段JavaScript的对象深拷贝代码
以下是一个基本的JavaScript对象深拷贝函数:
function deepCopy(obj) {
var result = Array.isArray(obj) ? [] : {};
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
if (typeof obj[key] === 'object') {
result[key] = deepCopy(obj[key]);
} else {
result[key] = obj[key];
}
}
}
return result;
}
该函数接受一个JavaScript对象作为参数,并返回该对象的深拷贝。如果对象是数组,则返回一个新数组,否则返回一个新对象。
函数通过递归遍历对象的每个属性,并根据该属性的数据类型执行相应的操作。如果属性是对象,则递归调用函数以获取该对象的深拷贝。否则,将该属性直接复制到新对象中。
需要注意一些特殊情况,例如循环引用和内置对象等,这些情况需要根据实际情况进行处理。
原文地址: https://www.cveoy.top/t/topic/rxW 著作权归作者所有。请勿转载和采集!