JSON.stringify实现深拷贝的不足之处

  1. 拷贝的对象的值中如果有函数、undefined、symbol 这几种类型,经过 JSON.stringify 序列化之后的字符串中这个键值对会消失;
  2. 拷贝 Date 引用类型会变成字符串;
  3. 无法拷贝不可枚举的属性;
  4. 无法拷贝对象的原型链;
  5. 拷贝 RegExp 引用类型会变成空对象
  6. 对象中含有 NaN、Infinity 以及 -Infinity,JSON 序列化的结果会变成 null;
 function Obj () {
      this.func = function () {alert('1111')};
      this.obj = {a:1}
      this.arr = [1,2,3]
      this.und = undefined;
      this.reg = /123/;
      this.date = new Date ()
      this.NaN = NaN;
      this.infinity = Infinity
    }
    let obj1 = new Obj()
    let obj2 = JSON.parse(JSON.stringify(obj1))
    console.log(obj1);
    console.log(obj2, '999999999999999');

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值