所以我有一个变量叫做
elements
有一堆数据。比方说,就是这样:
{
name: "Jeff",
age: "18",
carList: [
"car1": "...",
"car2": "..."
],
surname: "Matt"
}
我还有一个空数组,一开始是这样声明的:
public myArray: Model[] = [];
Model
只是一个包含
.
我想得到的是一份
元素
myfunction(){
//Do stuff that change `car1` from `...` to `hello`
myArray.push(Object.assign({}, this.elements));
}
最后,我有一个函数,可以打印
myArray
function print(){
this.myArray.forEach(el => {
console.log(el);
});
}
问题是数组的每个元素都有我做的最新更新。
所以如果
myFunction
有好几次被叫去做这样的事:
-
把“杰夫”改成“杰克”
-
将年龄“18”改为“25”
-
我看到的是三个
log
显示此数据:
{
name: "Jeff",
age: "25",
carList: [
"car1": "...",
"car2": "..."
],
surname: "Seth"
}
我的问题是:为什么要使用
Object.asign
它还保留着对它的原始对象的引用吗?我应该保留每次修改的历史记录,而不是在我所做的三次编辑中都只保留最后一次编辑。
非常感谢。