Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

js 深度拷贝

作者:血舞悲鸣   发布日期:2026-06-25   浏览:83

// 深度拷贝的实现方法之一:使用 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 对象等特殊情况

解释说明:

  • JSON.stringifyJSON.parse 是一种简单的深度拷贝方式,适用于大多数基本数据类型和嵌套对象。
  • 这种方法会将对象转换为 JSON 字符串,然后再将其解析回对象,从而实现深度拷贝。
  • 局限性:它无法处理函数、undefinedDate 对象、RegExp 对象等特殊类型的数据。对于这些情况,需要更复杂的深度拷贝实现。

如果你需要处理这些特殊情况,可以考虑使用递归或其他库(如 Lodash 的 _.cloneDeep)。

上一篇:js 浅拷贝

下一篇:js throw

大家都在看

js 数组打乱顺序

js 两个数组取交集

js 数组对象排序

js 对象数组排序

js 数组删掉第一个值

js fill

js fill方法

js 数组连接

js json数组

js 数组复制

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站