JavaScript

js实现深度克隆

2019-10-21  本文已影响0人  邢走在云端

方法一

硬刚法(迭代法,适用于所有)

function deepClone(obj) {
    let newObj = Array.isArray(obj) ? [] : {}
    if (obj && typeof obj === "object") {
        for (let key in obj) {
            if (obj.hasOwnProperty(key)) {
                newObj[key] = (obj && typeof obj[key] === 'object') ? deepClone(obj[key]) : obj[key];
            }
        }
    } 
    return newObj
}
const newObj = deepClone(oldObj));

方法二

利用JSON.stringify 将js对象序列化(JSON字符串),再使用JSON.parse来反序列化(还原)js对象

const newObj = JSON.parse(JSON.stringify(oldObj));

缺点:

方法三

const newObj = Object.assign([],oldObj);

缺点

上一篇 下一篇

猜你喜欢

热点阅读