js 对象深度拷贝


js 的Object.assign 可以拷贝一个对象,但是更深层次的对象无法进行拷贝。
所以还是必须自己实现一个递归来实现深拷贝

// 深度拷贝
    function extend(obj, obj2) {
        // 拷贝对象,防止修改了原始obj
        var newObj = Object.assign({}, obj);
        for (var key in obj2) {
            if ("object" != typeof obj[key] || null === obj[key] || Array.isArray(obj[key])) {
                if (void 0 !== obj2[key]) {
                    newObj[key] = obj2[key];
                }
            }else{
                    newObj[key] = extend(obj[key], obj2[key]);
                }
        }
        return newObj
    }

这样一来,就不用担心嵌套对象的拷贝了


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM