如何正确深入合并(类似于lodash)两个ES6类实例
生成的对象必须是同一个类的实际实例,其属性应该是两个实例属性的深度合并。
发布于 2018-09-12 18:09:02
如果不需要创建新实例,请执行以下操作
_.merge(instance1, instance2)这将在保存原型的同时将instance2属性深入合并到instance1中。
如果合并的实例应该是一个全新的对象,它仍然是可以实现的:
let newInstance = Object.assign(Object.create(Object.getPrototypeOf(o1)), _.merge(o1, o2));这将创建一个新的对象,它是o1 is类的一个实例,并将o1和o2的属性深入到其中。
然而,这种方法有一些警告,例如(来自here):
如果实例是在构造函数中大量使用闭包创建的,则很难实现。我们现在可能永远不会设置哪些内部值,以及如何复制这样的设置。
https://stackoverflow.com/questions/52283935
复制相似问题