关于node.js:如何克隆javascript ES6类实例

How to clone a javascript ES6 class instance

本问题已经有最佳答案,请猛点这里访问。

如何使用ES6克隆JavaScript类实例。

我对基于jquery或$extend的解决方案不感兴趣。

我已经看过很多关于对象克隆的老讨论,这些讨论表明这个问题非常复杂,但是有了ES6,一个非常简单的解决方案出现了——我将把它放在下面,看看人们是否认为它是令人满意的。

编辑:有人建议我的问题是重复的;我看到了这个答案,但它已经7岁了,使用ES6JS之前的版本涉及非常复杂的答案。我建议,考虑到ES6,我的问题有一个非常简单的解决方案。


1
let clone = Object.assign( Object.create( Object.getPrototypeOf(orig)), orig)

我试了很多次,最后这对我很管用。

它还避免设置原型,因为他们说它会大大降低代码的速度。

这是一条单行线!


1
2
const clone = Object.assign( {}, instanceOfBlah );
Object.setPrototypeOf( clone, Blah.prototype );

注意object.assign的特性:它执行一个浅复制,不复制类方法。

如果您希望对副本进行深度复制或进行更多控制,那么可以使用lodash clone函数。