JavaScript 深拷贝

在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等特殊类型的数据,需要进行特殊处理。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容