我正在尝试克隆一个用new
创建的对象。我发现这样做的唯一方法是:
let tmp = Object.create(instance.__proto__);
let obj = Object.assign(tmp, instance);
这个示例有效并且可以完成工作,但看起来不像是一个适当的解决方案。我想知道是否有一种更好的方法来克隆用new
?
任何帮助将不胜感激!
如果要制作 deep 或 shallow clone。
为了简单起见,让我们假设您要像代码中创建浅克隆。
然后,您可以使用提供的代码的较短版本:
let obj = Object.assign({}, instance);
或使用ES6扩展语法:
let obj = {...instance};
两种方式都是正确的。