如何克隆一个JavaScript的ES6类实例

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

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

我曾经见过很多关于对象克隆的讨论,认为这个问题相当复杂,但是用ES6,一个非常简单的解决scheme就出现了 – 我会把它放在下面,看看人们是否认为它是令人满意的。

编辑:这是build议我的问题是重复的; 我看到了这个答案,但是它已经7岁了,并且使用ES6之前的版本来解释非常复杂的答案。 我build议我的问题,它允许ES6,有一个更简单的解决scheme。

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

我尝试了很多,最终这为我工作。

这也避免了设置原型,因为他们说它会减慢代码。

这是一个单线!

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

注意Object.assign的特性:它做一个浅拷贝,不复制类的方法。

如果你想要一个复制或更多的副本控制,那么就有lodash克隆function 。