深拷贝-简单实现

63 阅读1分钟
<script src="./js/lodash.js"></script>
<script>
    let deepCopy = (src, target) => {
        for (const key in src) {
            if (src[key] instanceof Array) {
                target[key] = []
                deepCopy(src[key], target[key])
            } else if (src[key] instanceof Object) {
                target[key] = {}
                deepCopy(src[key], target[key])
            } else {
                target[key] = src[key]
            }
        }
    }
    let obj = {
        name: 123,
        info: {
            title: 'up',
            bd: {
                day: 01,
            },
        },
    }
    let obj3 = {}
        // console.log('deep copy', _.isEqual(obj, deepCopy(obj, obj3)))
    console.log(_.isEqual(obj, Object.assign(obj)))
    console.log('deep copy', _.isEqual(obj, deepCopy(obj, obj3)))
    obj.info.title = 'person'
    console.log(obj)
    console.log(obj3)
</script>