📜  Lodash _.extendWith() 方法

📅  最后修改于: 2022-05-13 01:56:32.546000             🧑  作者: Mango

Lodash _.extendWith() 方法

Lodash是一个基于 underscore.js 的 JavaScript 库。 Lodash 有助于处理数组、字符串、对象、数字等。

lodash 中 Object 的 _.extendWith()方法类似于_.assignIn()方法,唯一的区别是它接受为生成赋值而调用的定制器。此外,如果此处使用的定制器返回未定义,则分配由方法处理。

笔记:

  • 这里使用的定制器可以用五个参数调用,即objValuesrcValuekeyobjectsource
  • 此处使用的对象是通过此方法更改的。

句法:

_.extendWith(object, sources, [customizer])

参数:此方法接受三个参数,如上所述,如下所述:

  • 对象:它是目标对象。
  • sources:它是源对象。
  • 定制器:它是定制分配值的函数。

返回值:此方法返回一个对象。

示例 1:

// Requiring lodash library
const _ = require('lodash');
  
// Defining a function customizer
function customizer(objectVal, sourceVal) {
  return _.isUndefined(objectVal) ? 
        sourceVal : objectVal;
}
  
// Calling extendWith method with its parameter
let obj = _.extendWith({ 'gfg': 1 }, 
        { 'geek': 3 }, customizer);
  
// Displays output
console.log(obj);

输出:

{ gfg: 1, geek: 3 }

示例 2:

// Requiring lodash library
const _ = require('lodash');
  
// Defining a function customizer
function customizer(objectVal, sourceVal) {
  return _.isUndefined(objectVal) ? 
        sourceVal : objectVal;
}
  
// Defining a function GfG
function GfG() {
  this.p = 7;
}
  
// Defining a function Portal
function Portal() {
  this.r = 9;
}
  
// Defining prototype of above functions
GfG.prototype.q = 8;
Portal.prototype.s = 10;
  
// Calling extendWith method
// with its parameter
let obj = _.extendWith({ 'p': 6 }, 
    new GfG, new Portal, customizer);
  
// Displays output
console.log(obj);

输出:

{ p: 6, q: 8, r: 9, s: 10 }

参考: https ://lodash.com/docs/4.17.15#assignInWith