美文网首页
Object.assign({}, obj, obj2) 这算是

Object.assign({}, obj, obj2) 这算是

作者: SailingBytes | 来源:发表于2023-05-10 10:17 被阅读0次

    Object.assign({}, obj, obj2) 是使用 Object.assign() 方法来合并对象的一种常见方式,但它并不属于深拷贝。

    Object.assign() 方法用于将一个或多个源对象的属性复制到目标对象,并返回目标对象。当目标对象和源对象具有相同的属性时,后面的源对象将覆盖前面的源对象的属性。

    虽然 Object.assign() 可以复制对象的属性,但它只能进行浅拷贝(shallow copy)。这意味着如果对象中的属性是对象或数组,那么拷贝的只是引用,而不是创建新的对象。因此,对于嵌套的对象或数组,更改拷贝后的对象会影响原始对象。

    示例:

    const obj = { a: 1, b: { c: 2 } };
    const clonedObj = Object.assign({}, obj);
    clonedObj.b.c = 3;
    
    console.log(obj);         // { a: 1, b: { c: 3 } }
    console.log(clonedObj);   // { a: 1, b: { c: 3 } }
    

    在上面的示例中,对拷贝后的对象 clonedObj 进行属性修改会影响原始对象 obj 中相同属性的值。

    因此,如果你需要进行深拷贝而不仅仅是浅拷贝,你需要使用其他的方法,如使用递归或第三方库来实现深度复制。

    相关文章

      网友评论

          本文标题:Object.assign({}, obj, obj2) 这算是

          本文链接:https://www.haomeiwen.com/subject/ibodsdtx.html