mergeObjects (对象合并) 
mergeObjects 函数用于将多个源对象的属性合并到目标对象中。它支持深度合并对象,即如果目标对象中已有属性且其值为对象,则将源对象中对应属性的对象递归合并到目标对象中。
函数调用方式 
javascript
mergeObjects(target, ...sources)参数说明 
| 参数名 | 类型 | 描述 | 
|---|---|---|
target | Object | 需要合并属性的目标对象,必须是一个非空对象。 | 
sources | Object (可变参数) | 一个或多个源对象,将其属性合并到目标对象中。每个源对象也必须是非空对象。 | 
返回值 
返回合并后的目标对象 target。
异常处理 
- 如果 
target不是一个非空对象,将抛出一个错误:Target must be a non-null object。 - 如果任何一个 
source不是一个非空对象,将抛出一个错误:Source must be a non-null object。 
示例代码 
基本用法 
javascript
const target = { a: 1, b: 2 };
const source1 = { b: 3, c: 4 };
const source2 = { d: 5 };
const result = mergeObjects(target, source1, source2);
console.log(result); // 输出: { a: 1, b: 3, c: 4, d: 5 }深度合并对象 
javascript
const target = { a: 1, b: { x: 10, y: 20 } };
const source = { b: { y: 30, z: 40 }, c: 50 };
const result = mergeObjects(target, source);
console.log(result); // 输出: { a: 1, b: { x: 10, y: 30, z: 40 }, c: 50 }输入验证示例 
javascript
try {
    mergeObjects(null, { a: 1 }); // 将抛出错误
} catch (error) {
    console.error(error.message); // 输出: Target must be a non-null object
}
try {
    mergeObjects({}, null); // 将抛出错误
} catch (error) {
    console.error(error.message); // 输出: Source must be a non-null object
}合并多个源对象 
javascript
const target = { a: 1 };
const source1 = { b: 2 };
const source2 = { c: 3 };
const source3 = { d: 4, e: { f: 5 } };
const result = mergeObjects(target, source1, source2, source3);
console.log(result); // 输出: { a: 1, b: 2, c: 3, d: 4, e: { f: 5 } }结论 
mergeObjects 函数提供了一种灵活的方式来合并多个对象的属性,并支持深度合并。当需要合并复杂的对象结构时,该函数非常有用,同时也确保了输入的有效性和安全性。