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