对象深浅拷贝

浅拷贝

function simpleCopy (obj) {
    var o = {};
    for (var i in obj) {
        o[i] = obj[i];
    }
}

var o = {...obj};

深拷贝

//目标对象   源对象
function deepCopy (dest, ori) {
    for (var i in ori) {
        if (typeof ori[i] == 'object') {
            //对象 判断对象类型 若是数组就初始化为[]  若是对象就初始化为{}
            //constructor 构造器  指向它原来的构造函数
            dest[i] = (ori[i].constructor == Array) ? [] : {};
            deepCopy(dest[i], ori[i]);
        }else {
            dest[i] = ori[i];
        }
    }
}

你可能感兴趣的:(对象深浅拷贝)