浅拷贝

function shallowCopy(obj) {    if (!obj) return obj;    // 只拷贝对象    if (typeof obj !== 'object') {        return    }    var newObj = Array.isArray(obj) ? [] : {}    for(var key in obj) {        if (obj.hasOwnProperty(key)) {            newObj[key] = obj[key]        }    }    return newObj}

深拷贝

function deepCopy(obj) {    if (!obj) return obj;    // 只拷贝数组和对象    if (typeof obj !== 'object') {        return    }    var newobj = Array.isArray(obj) ? []: {};    for (var key in obj) {        if (obj.hasOwnProperty(key)) {            newobj[key] = (typeof obj[key] === 'object') ? deepCopy(obj[key]) : obj[key]        }    }    return newobj}