首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >深度合并两个类实例

深度合并两个类实例
EN

Stack Overflow用户
提问于 2018-09-11 20:43:22
回答 1查看 937关注 0票数 2

如何正确深入合并(类似于lodash)两个ES6类实例

生成的对象必须是同一个类的实际实例,其属性应该是两个实例属性的深度合并。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-12 18:09:02

如果不需要创建新实例,请执行以下操作

代码语言:javascript
复制
_.merge(instance1, instance2)

这将在保存原型的同时将instance2属性深入合并到instance1中。

如果合并的实例应该是一个全新的对象,它仍然是可以实现的:

代码语言:javascript
复制
let newInstance = Object.assign(Object.create(Object.getPrototypeOf(o1)), _.merge(o1, o2));

这将创建一个新的对象,它是o1 is类的一个实例,并将o1o2的属性深入到其中。

然而,这种方法有一些警告,例如(来自here):

如果实例是在构造函数中大量使用闭包创建的,则很难实现。我们现在可能永远不会设置哪些内部值,以及如何复制这样的设置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52283935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档