Json实现深拷贝的缺点

1、如果被拷贝对象中的属性有时间对象的话,拷贝出来会为字符串,将不再是对象

javascript 复制代码
        var test = {
            name: 'a',
            date: [new Date(1536627600000), new Date(1540047600000)],
        };
        console.log(test)
        console.log(JSON.parse(JSON.stringify(test)));

2、如果obj里有RegExp(正则表达式的缩写)、Error对象,则序列化的结果将只得到空对象;

javascript 复制代码
        const test = {
            name: 'a',
            date: new RegExp('\\w+'),
        };
        const copyed = JSON.parse(JSON.stringify(test));
        test.name = 'test'
        //console.error('ddd', test, copyed);
        console.log(test);
        console.log(copyed);

3、如果obj里有函数、undefined,则序列化的结果会把函数或 undefined丢失;

javascript 复制代码
        const test = {
            name: 'a',
            date: function hehe() {
                console.log('fff')
            },
            b:undefined
        };
        // debugger
        const copyed = JSON.parse(JSON.stringify(test));
        test.name = 'test'
        console.log('ddd', test, copyed);

4、如果obj里有NaN、Infinity和-Infinity,则序列化的结果会变成null

相关推荐
G_GreenHand1 分钟前
Dhtmlx Gantt教程
前端
鹿九巫2 分钟前
【CSS】层叠,优先级与继承(四):层叠,优先级与继承的关系
前端·css
卓怡学长4 分钟前
w304基于HTML5的民谣网站的设计与实现
java·前端·数据库·spring boot·spring·html5
宝拉不想努力了6 分钟前
vue element使用el-table时,切换tab,table表格列项发生错位问题
前端·vue.js·elementui
YONG823_API11 分钟前
深度探究获取淘宝商品数据的途径|API接口|批量自动化采集商品数据
java·前端·自动化
鱼樱前端11 分钟前
前端必知必会:JavaScript 对象与数组克隆的 7 种姿势,从浅入深一网打尽!
前端·javascript
冰^22 分钟前
MySQL VS SQL Server:优缺点全解析
数据库·数据仓库·redis·sql·mysql·json·数据库开发
yzhSWJ27 分钟前
Spring Boot中自定义404异常处理问题学习笔记
java·javascript
小希爸爸37 分钟前
1、中医基础入门和养生
前端·后端
神仙别闹2 小时前
基于VUE+Node.JS实现(Web)学生组队网站
前端·vue.js·node.js