深拷贝与浅拷贝代码验证

    科技2022-07-11  109

    浅拷贝 只拷贝一层(拷贝地址)

    深拷贝 拷贝多层(拷贝值)

    浅拷贝:

    var obj = { id: 1, name: 'andy', msg: { age: 18 }, color: ['pink', 'red'] } var o1 = {} Object.assign(o1, obj) console.log(o1);

    深拷贝:

    var o = {} function deepCopy(target, source) { //封装函数 for (var k in source) { var item = source[k] //获取属性 if (item instanceof Array) { //判断这个属性是否属于数组 target[k] = [] deepCopy(target[k], item) } else if (item instanceof Object) { //判断这个属性是否属于对象 target[k] = {} deepCopy(target[k], item) } else { //属于简单类型 target[k] = item } } } deepCopy(o, obj) console.log(o);
    Processed: 0.028, SQL: 8