美文网首页
JavaScript 深拷贝

JavaScript 深拷贝

作者: 源大侠 | 来源:发表于2023-12-06 18:38 被阅读0次

在JavaScript中,深拷贝是指创建一个新对象,并复制原始对象的所有属性和值,包括对象内部的嵌套属性。这样可以在不改变原始对象的情况下,得到一个完全独立的副本。

在JavaScript中,可以使用以下几种方法进行深拷贝:

使用Object.assign()方法:

var originalObject = {a: 1, b: 2, c: {d: 3}};  
var copiedObject = Object.assign({}, originalObject);

使用JSON的parse()和stringify()方法:

var originalObject = {a: 1, b: 2, c: {d: 3}};  
var copiedObject = JSON.parse(JSON.stringify(originalObject));

使用递归复制函数:

function deepClone(obj) {  
    if (obj === null || typeof obj !== 'object') {  
        return obj;  
    }  
    let clone = Array.isArray(obj) ? [] : {};  
    for (let key in obj) {  
        if (obj.hasOwnProperty(key)) {  
            clone[key] = deepClone(obj[key]);  
        } else {  
            clone[key] = obj[key];  
        }     
    }     
    return clone;  
}  
var originalObject = {a: 1, b: 2, c: {d: 3}};  
var copiedObject = deepClone(originalObject);

注意:如果对象中包含函数、RegExp、Date等特殊类型的数据,这些数据不会被复制。如果对象中包含函数、RegExp、Date等特殊类型的数据,需要进行特殊处理。

相关文章

  • 浅拷贝和深拷贝

    本文参考:JavaScript中的浅拷贝和深拷贝js 深拷贝 vs 浅拷贝深入剖析 JavaScript 的深复制...

  • 深入理解JavaScript中的堆与栈 、浅拷贝与深拷贝

    JavaScript中的浅拷贝与深拷贝 学了这么长时间的JavaScript想必大家对浅拷贝和深拷贝还不太熟悉吧,...

  • 理解JavaScript中浅拷贝和深拷贝的区别

    要理解 JavaScript中浅拷贝和深拷贝的区别,首先要明白JavaScript的数据类型 JavaScript...

  • js浅拷贝和深拷贝

    javaScript的变量类型 javaScript的变量类型基本类型:引用类型: 浅拷贝和深拷贝的区分 浅拷贝浅...

  • JavaScript深拷贝 浅拷贝

    JavaScript深拷贝 浅拷贝 JavaScript 数据类型分为两种: 基础类型:像Number、Strin...

  • javascript深拷贝

  • JavaScript 深拷贝

    Method1 JSON 使用 JSON 方法,先将 对象 转换成字符串,再将字符串转换成 JSON形式对象 Me...

  • JavaScript深拷贝

    先说下什么是浅拷贝和深拷贝的区别浅拷贝: 就是把一个对象内的属性赋值到另一个对象内, 但是如果属性是对象的话就不可...

  • Javascript深拷贝

    什么是深拷贝 创建一个新的对象或数组时,将原对象/数组的“值”拷贝,而不是“引用”。 深拷贝 数组拷贝不存在多层嵌...

  • JavaScript深拷贝

    写在前面 如果本文对您有所帮助,就请点个关注吧! 手写JavaScript深拷贝 源代码 测试 测试结果

网友评论

      本文标题:JavaScript 深拷贝

      本文链接:https://www.haomeiwen.com/subject/vmecpdtx.html