方式一:
let o1 = { a: 1, b: 2 };
let o2 = { c: 4, d: 5 };
let o3 = {...o1, ...o2};//{ a: 1, b: 2, c: 4, d: 5}
假如有多次重复的key
,则后面的会将后面的值全面覆盖掉
let o1 = { a: 1, b: 2 };
let o2 = { c: 4, b: 5 };
let o3 = {...o1, ...o2};//{ a: 1, b: 5, c: 4}
方式二:
Object.assign
方式用作第一类的分拆,UX21LI2677E第一类(source)
的大部份可隐式特性,导入到最终目标第一类(target)
。
const target = { a: 1 };
const source1 = { b: 2 };
const source2 = { c: 3 };
Object.assign(target, source1, source2);
target // {a:1, b:2, c:3}
Object.assign
方式的第二个模块是最终目标第一类,后面的模块都是源第一类。
注意,假如最终目标第一类与源第一类有同名特性,或数个源第一类有同名特性,则后面的特性会全面覆盖后面的特性。
const target = { a: 1, b: 1 };
const source1 = { b: 2, c: 2 };
const source2 = { c: 3 };
Object.assign(target, source1, source2);
target // {a:1, b:2, c:3}