JS—对象中的Object.assign( )

149 阅读1分钟

1.概述

Object.assign()将源对象(source)的所有属性复制到目标对象(target)中,返回值是被修改后的目标对象。该方法可用于合并对象。

2.语法

Object.assign(target,source)

1)参数

target——目标对象,接收源对象属性的对象。

source——源对象,含有将被合并的属性。

注意:Object.assign方法的第一个参数是目标对象,其余后面参数都是源对象。

2)返回值

返回被修改后的目标对象(target)。

3.案例使用

1、合并多个对象

const o1={a:1};  //目标对象
const o2={b:3};  //源对象
const o3={d:4};  //源对象
const obj=Object.assign(o1,o2,o3);   //此例中o1是目标对象,o2,o3都是源对象
console.log(obj);  //{ a: 1, b: 3, d: 4 }
console.log(o1);   //{ a: 1, b: 3, d: 4 }

console.log(o2);   //{ b: 3 }
console.log(o3);   //{ d: 4 }

2、合并具有相同key的对象:

如果目标对象与源对象有同名属性,或多个源对象有同名属性(即相同的key),则后面的属性会覆盖前面的属性。

const o1={a:2,b:3,c:5};  
const o2={b:4,c:6};  
const o3={c:8};  
const obj=Object.assign(o1,o2,o3);
console.log(obj);  //{ a: 2, b: 4, c: 8 }
console.log(o1);   //{ a: 2, b: 4, c: 8 }

3、复制:如果目标对象是空对象,Object.assign方法会复制源对象到目标对象中。

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

developer.mozilla.org/zh-CN/docs/…