# \_.assignInWith(object, sources, customizer )

URL: https://caijiao.org/lodash/docs/Object/_.assignInWith
Source: docs/lodash/docs/Object/_.assignInWith.md
Description: 将一个或多个源对象的属性复制到目标对象中，包括原型链上的属性。如果多个源对象具有相同的属性，则通过自定义函数来决定属性值的合并方式。

该函数用于将一个或多个源对象的属性复制到目标对象中，包括原型链上的属性。如果多个源对象具有相同的属性，则通过自定义函数来决定属性值的合并方式。

## 参数

- `object`：目标对象，接收属性的对象。
- `sources`：一个或多个源对象，提供要复制的属性。
- `customizer`（可选）：一个自定义函数，用于决定属性值的合并方式。该函数接收四个参数：`(objValue, srcValue, key, object, source)`。`objValue` 是目标对象的属性值，`srcValue` 是源对象的属性值，`key` 是属性名，`object` 是目标对象，`source` 是源对象。函数应该返回一个合并后的值。

## 返回值

返回目标对象，即复制了源对象属性的对象。

## 示例

```javascript
function customizer(objValue, srcValue) {
  // 合并属性时，如果属性值是数字类型，则将它们相加
  if (typeof objValue === "number" && typeof srcValue === "number") {
    return objValue + srcValue;
  }
}

const target = { a: 1 };

const source1 = { b: 2 };
const source2 = { b: 3 };

// 将 source1 和 source2 的属性复制到 target 中，通过自定义函数决定属性值的合并方式
const result = _.assignInWith(target, source1, source2, customizer);

console.log(result);
// 输出: { a: 1, b: 5 }
```

在上述示例中，`_.assignInWith()` 函数将源对象 `source1` 和 `source2` 的属性复制到目标对象 `target` 中，包括原型链上的属性。使用了自定义函数 `customizer` 来决定属性值的合并方式。在这个例子中，如果属性值是数字类型，则通过相加的方式合并。最终的结果是目标对象 `target` 包含了源对象的属性和原型链上的属性，并且属性值进行了合并，输出结果为 `{ a: 1, b: 5 }`。

请注意，具体的实现和用法可能会根据所使用的 lodash 版本而有所不同。建议参考官方文档或特定版本的文档以获取准确的信息。
