请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

我试了... 这种方法 深拷贝 是不是说就能替代 深拷贝函数deepClone了

这种方法和deepClone 这种深拷贝封装的方法 有什么区别吗

let obj1 = {
    a: {
      c: /a/,
      d: undefined,
      b: null,
    },
    b: function () {
      console.log(this.a);
    },
    c: [
      {
        a: "c",
        b: /b/,
        c: undefined,
      },
      "a",
      3,
    ],
  };
  let obj2 = {
    ...obj1
  }
  obj3 = JSON.parse(JSON.stringify(obj1))
  console.log(obj2);
  // obj2.b()
  console.log(obj3)

正在回答 回答被采纳积分+3

2回答

喵咪老师 2021-12-09 21:13:26

obj3 = JSON.parse(JSON.stringify(obj1))

这种深拷贝 拷贝 Date类型 就会转为字符串了。

所以不大好

1 回复 有任何疑惑可以回复我~
谢成 2021-12-08 09:07:05

1、扩展运算符属于浅拷贝

2、JSON.parse(JSON.stringfy(xxx)) 属于深拷贝,但对于一些特殊情况也会被忽略,比如function、symbol

1 回复 有任何疑惑可以回复我~
  • 提问者 微微一笑很闪人 #1
    好吧 老师我又回去重看了下一下 7-3 对象扩展 这节6分58秒的时候您说...这是深拷贝的。现在明白了
    回复 有任何疑惑可以回复我~ 2021-12-15 04:44:41
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信