始于此, 终于斯
文章31
标签0
分类13

JS对象拷贝

在模块中设计一个列表, 触发Add Action时, 向列表中添加一个项目
这个项目用一个模板对象变量存储, 每次添加时, 将这个对象推入列表数组

let personBase = { name: "", mobile: "" };
let personList = [];

使用初始化模板新增项目

personList.push(personBase);

只push一次的时候, 不会发现问题, 如果多次Add, 那么改变数组中任一对象都会同时改变数组中所有对象

personList[0].name = "Dino";

console.log(personList[1].name;
// 输出Dino

因为这里push的是对象的引用, 而现在只是需要这个模板对象的结构与初始化数据

  1. 使用 ... 展开运算符
let personList.push({ ...personBase });
  1. 使用深拷贝
let personList.push(JSON.parse(JSON.stringify(personBase)));

    1 评论

    1. 1 12月6日 回复
      555