美文网首页
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