gpt4 book ai didi

javascript - 如何在javascript中的两个现有对象之间进行复制

转载 作者:行者123 更新时间:2023-12-03 16:35:14 25 4
gpt4 key购买 nike

我有两个相同类型的对象,我想将其中一个的内容复制到另一个。

const Invoice1 = new InvoiceModel(); 

const Invoice2 = new InvoiceModel();

现在为了有这样的东西:Invoice2 = Invoice1

阅读后:

How do I correctly clone a JavaScript object?

我尝试使用以下任何命令,但它们都说 invoice2 未在运行时定义:

 Invoice2 = { ...Invoice1 };  //OR

Invoice2 = Object.assign({}, Invoice1); //OR

Invoice2 = JSON.parse(JSON.stringify(Invoice1));

最后我通过阅读这篇文章(https://medium.com/@Farzad_YZ/3-ways-to-clone-objects-in-javascript-f752d148054d)使用这个函数来复制对象的内容:

function CopyObject(src, target) {
for (let prop in src) {
if (src.hasOwnProperty(prop)) {
target[prop] = src[prop];
}
}
return target;
}

除了使用上述功能,我想知道是否有更简洁的方法来做到这一点?

我已经阅读了很多关于这个问题的帖子,但他们都创建了一个新对象。

最佳答案

我建议在 InvoiceModel 的原型(prototype)中创建一个自动为您执行此操作的方法。

class InvoiceModel {
constructor(num) {
this.num = num
}
duplicate() {
return Object.assign(Object.create(this), this)
}
}

const obj1 = new InvoiceModel(10)
console.log(obj1.num)
const obj1Copy = obj1.duplicate()
console.log(obj1Copy.num)
console.log(obj1Copy === obj1)

关于javascript - 如何在javascript中的两个现有对象之间进行复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56348002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com