Object.assign()方法是用于将一个或多个源对象的属性复制到目标对象中的方法,它的语法如下:
Object.assign(target, ...sources)
其中,target表示目标对象,sources表示一个或多个源对象,可以是对象字面量、变量、函数返回值等。
该方法会将源对象的属性逐一复制到目标对象中,如果目标对象中已有同名属性,则会覆盖原有属性的值。如果源对象中存在嵌套对象,则会进行浅复制,即只复制对象的引用而不是对象本身。
该方法的返回值是目标对象,也就是复制后的对象。
Object.assign()方法的常见应用场景包括:
- 合并对象
可以使用Object.assign()方法将多个对象合并成一个对象,例如:
const obj1 = {a: 1};
const obj2 = {b: 2};
const obj3 = {c: 3};
const mergedObj = Object.assign({}, obj1, obj2, obj3);
console.log(mergedObj); // {a: 1, b: 2, c: 3}
- 克隆对象
可以使用Object.assign()方法克隆一个对象,例如:
const originalObj = {a: 1, b: 2};
const clonedObj = Object.assign({}, originalObj);
console.log(clonedObj); // {a: 1, b: 2}
- 添加属性
可以使用Object.assign()方法添加属性到一个对象中,例如:
const obj = {a: 1};
Object.assign(obj, {b: 2});
console.log(obj); // {a: 1, b: 2}
需要注意的是,Object.assign()方法只能复制可枚举属性,且无法复制对象的继承属性。此外,该方法只能复制对象的自身属性,无法复制对象的原型链上的属性。