js 深拷貝/淺拷貝

一、淺拷貝
原生js:

var newArr=[];
var oldArr=[1,2,3];
Object.assign(newArr,oldArr);

jquery實現:

var newArr=[];
var oldArr=[1,2,3];
newArr = $.extend(true,[],oldArr)

二、深拷貝

function deepClone(obj) {
    let result = typeof  obj.splice === "function" ? [] : {};
    if (obj && typeof obj === 'object') {
        for (let key in obj) {
            if (obj[key] && typeof obj[key] === 'object') {
            	//如果對象的屬性值爲object的時候,遞歸調用deepClone,即在吧某個值對象複製一份到新的對象的對應值中。
                result[key] = deepClone(obj[key]);
            } else {
              //如果對象的屬性值不爲object的時候,直接複製參數對象的每一個鍵值到新的對象對應的鍵值對中。
                result[key] = obj[key];
            }

        }
        return result;
    }
    return obj;
}

var newArr=[];
var oldArr=[1,2,3];
newArr = deepClone(oldArr);

相關文章:
1、深拷貝的三種實現方式
2、js對象的深拷貝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章