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

js 深拷贝

作者:灭世杀   发布日期:2025-10-10   浏览:33

// 深拷贝的实现方法之一:使用 JSON.parse 和 JSON.stringify
function deepClone(obj) {
    // 将对象转换为字符串,再将字符串转换回对象,实现深拷贝
    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(originalObject.address.city); // 输出: New City
console.log(clonedObject.address.city); // 输出: Wonderland

// 注意:这种方法不能处理函数、undefined、Symbol、Date、RegExp 等特殊类型的值

解释说明:

  • JSON.parse 和 JSON.stringify:这是实现深拷贝的一种简单方法。JSON.stringify 将对象转换为字符串,JSON.parse 再将字符串转换回对象。这种方式适用于简单的对象结构。
  • 局限性:这种方法无法处理函数、undefinedSymbolDateRegExp 等特殊类型的值。如果需要处理这些类型,可以考虑使用递归或其他库(如 Lodash 的 _.cloneDeep)来实现更全面的深拷贝。

上一篇:js 深拷贝对象

下一篇:js apply和call的区别

大家都在看

js 数组对象排序

js 数组删掉第一个值

js fill

js 数组连接

js json数组

js 数组复制

js 复制数组

js 数组拷贝

js 对象数组合并

js 对象转数组

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

Laravel 中文站