引用对象深拷贝,我一直用的是2次JSON转换,也就是先将对象转成string再转成对象,一直没有什么问题。

后来发现这样做还是有个缺点,那就是原对象的方法拷贝不出来。代码如下所示。

      //原对象Person1,有属性name和方法show
const Person1 = { 'name': 'name1', show() { return 'hello world!'; } };
//直接赋值 const Person2
= Person1; console.log(Person2.name); console.log(Person2.show());
//深度拷贝 const Person3
= JSON.parse(JSON.stringify(Person1)); console.log(Person3.name); console.log(Person3.show()); //此方法没有,会报错

将上述代码在控制台直接粘贴,回车之后会看到结果,如下图所示

 

JSON深拷贝缺点

 所以使用JSON实现深度拷贝有这个缺点,得注意

相关文章:

  • 2021-06-14
  • 2021-10-14
  • 2021-07-26
  • 2021-10-02
猜你喜欢
  • 2022-12-23
  • 2021-10-01
  • 2021-07-18
  • 2021-09-15
  • 2021-07-16
  • 2021-09-12
  • 2021-11-26
相关资源
相似解决方案