首页 > Web开发 > 详细

JS的深浅拷贝

时间:2021-05-10 00:32:36      阅读:22      评论:0      收藏:0      [点我收藏+]

JS对象的深拷贝

1、JSON的parse和stringify,缺点是对象中属性值为undefined,函数和symbol的属性会省略。

let obj1 = {
    name: ‘张三‘,
    age: undefined,
    see: function(){
       console.log("看");
    },
    son: {
       name: ‘张四‘
    }
}
let obj2 = JSON.parse(JSON.stringify(obj1));

2、手写递归方法

function deepClone(target){
    if(target === null) return   null;
    if(typeof target !== ‘object‘) return target;
    const cloneTarget = Array.isArray(target) ? [] : {};
    for( let prop in target){
       if(target.hasOwnProperty(prop)){
           cloneTarget[prop] = deepClone(target[prop]);
       }
    }
    return cloneTarget;  
}

JS对象的浅拷贝

Object.assgin()

 

JS的深浅拷贝

原文:https://www.cnblogs.com/suntongjian/p/14748658.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!