// 深度拷贝的实现方法之一:使用 JSON.stringify 和 JSON.parse
function deepClone(obj) {
// 将对象转换为 JSON 字符串,再解析回对象,实现深度拷贝
return JSON.parse(JSON.stringify(obj));
}
// 示例
const originalObject = {
name: "Alice",
age: 25,
address: {
city: "Wonderland",
zip: "12345"
}
};
const clonedObject = deepClone(originalObject);
console.log(clonedObject); // 输出: { name: 'Alice', age: 25, address: { city: 'Wonderland', zip: '12345' } }
// 修改原始对象,检查克隆对象是否受到影响
originalObject.address.city = "New City";
console.log(clonedObject.address.city); // 输出: 'Wonderland'
// 注意:这种方法不能处理函数、undefined、Date 对象等特殊情况
undefined、Date 对象、RegExp 对象等特殊类型的数据。对于这些情况,需要更复杂的深度拷贝实现。如果你需要处理这些特殊情况,可以考虑使用递归或其他库(如 Lodash 的 _.cloneDeep)。
上一篇:js 浅拷贝
下一篇:js throw
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站