📅  最后修改于: 2023-12-03 15:18:05.236000             🧑  作者: Mango
Object.assign()
是 JavaScript 中的一个内置函数,用于将一个或多个源对象的属性复制到目标对象。它是一种浅拷贝方法,即只复制对象的引用,而不复制对象的实际值。Object.assign()
函数返回目标对象。
Object.assign(target, ...sources)
target
: 目标对象,即要将源对象的属性复制到的对象。sources
: 一个或多个源对象,即要从中复制属性的对象。const obj1 = { a: 1 };
const obj2 = { b: 2 };
const obj3 = { c: 3 };
const newObj = Object.assign({}, obj1, obj2, obj3);
// newObj: { a: 1, b: 2, c: 3 }
在上面的示例中,Object.assign()
将 obj1
、obj2
和 obj3
的属性复制到了新创建的空对象中,返回了新创建的对象。
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };
const mergedObj = Object.assign({}, obj1, obj2);
// mergedObj: { a: 1, b: 3, c: 4 }
在上面的示例中,Object.assign()
将 obj2
对象的属性合并到了 obj1
对象中,并返回了合并后的对象。如果多个对象拥有相同的属性,则后面的对象的属性值会覆盖前面的对象的属性值。
const obj = { a: 1, b: 2 };
const cloneObj = Object.assign({}, obj);
// cloneObj: { a: 1, b: 2 }
在上面的示例中,通过将一个空对象作为目标对象,然后将原始对象 obj
的属性复制到目标对象中,实现了一个简单的对象克隆。
const obj = { a: 1, b: 2 };
const updatedObj = Object.assign({}, obj, { b: 3, c: 4 });
// updatedObj: { a: 1, b: 3, c: 4 }
在上面的示例中,Object.assign()
用于更新对象的属性值。将原始对象 obj
的属性复制到目标对象中,并将指定的属性 { b: 3, c: 4 }
添加或更新到目标对象中。
const arr = [1, 2, 3];
const obj = { a: 0 };
const newArray = Object.assign({}, arr, obj);
// newArray: [1, 2, 3, a: 0]
在上面的示例中,Object.assign()
也可以用于将数组的元素作为目标对象的属性复制。数组的索引将会作为属性名添加到目标对象中。
Object.assign()
是浅拷贝,即只复制对象的引用。如果源对象的属性值是一个对象或数组,那么目标对象中的属性值将与源对象中的属性值引用同一个对象。Object.assign()
不会复制源对象的继承属性和不可枚举属性。null
或 undefined
,则会抛出 TypeError
。更多关于 Object.assign()
的详细说明,可以参考 MDN 文档。