Lodash库中.extend()/ .assign()和.merge()之间的区别。

分配/扩展采用源中的每个属性,将其值原样复制到目标。如果属性值本身是对象,则不会对其属性进行递归遍历。这也称为浅复制/克隆。整个对象将从源中取出并放入目的地。

合并采用源中的每个属性,检查该属性是否是对象本身。如果它随后递归下降,并尝试将子对象属性从源映射到目标。

示例

let _ = require('lodash');
let destination = {
   a: {
      b: 1,
      c: 2
   },
};
let source = {
   a: {
      d: 2,
      c: 3
   },
};
console.log(_.merge(destination, source));
console.log(_.extend(destination, source));

输出结果

这将给出输出-

{ a: { b: 1, c: 3, d: 2 } }
{ a: { d: 2, c: 3 } }