javascript深拷贝的情况有哪些
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇"javascript深拷贝的情况有哪些"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看
千家信息网最后更新 2025年01月19日javascript深拷贝的情况有哪些
这篇"javascript深拷贝的情况有哪些"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"javascript深拷贝的情况有哪些"文章吧。
深拷贝:引用数据类型中名存在栈内存中,值存在于堆内存中,但是栈内存会提供一个引用的地址指向堆内存中的值,深拷贝就是增加了一个指针并且申请了一个新的内存,使这个增加的指针指向这个新的内存。方法一:使用Object.assign(),一般用于数据类型比较简单,层数不大于1的数据;因为Object.assign无法深层拷贝。
const strJson = { id:'12343231', name:'张三', age:23, inof:{ sex:'男' }, sjid:null, strHandle () { console.log('111111111'); } } obj.name = 'lisi' obj.inof.sex = '女' console.log('obj',obj); console.log('strJson',strJson);
结果:
方法二:使用JSON.parse和JSON.stringify,一般用于数据类型比较复杂的,有深层嵌套的数据;但是undefined , function, RegExp 等类型无法处理;
const strJson = { id:'12343231', name:'张三', age:23, inof:{ sex:'男' }, sjid:null, strHandle () { console.log('111111111'); } } const obj = JSON.parse(JSON.stringify(strJson)) obj.name = 'lisi' obj.inof.sex = '女' console.log('obj',obj); console.log('strJson',strJson);
结果:
第三种:使用递归拷贝,在代码中处理特殊的情况。
function copyHandle (strJson) { let result ; // 判断是否存在 if (!strJson) return null; // 判断是否是对象 if (typeof strJson !== 'object') return strJson; // 判断是否是数组 if (Array.isArray(strJson)) { result = []; for (let i of strJson) { result.push(copyHandle(i)) } }//判断是否是RegExp else if(strJson.constructor===RegExp) { result = strJson }//判断是否是对象 else { result = {} for (let i in strJson) { result[i] = copyHandle(strJson[i]) } } // 返回结果 return result }
以上就是关于"javascript深拷贝的情况有哪些"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
拷贝
内存
内容
数据
情况
类型
结果
对象
就是
指向
指针
文章
方法
深层
知识
篇文章
张三
处理
复杂
特殊
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
补丁服务器英文
ipv6网络安全工作目标
2022年祈福服务器阵营比例
超越无限网络技术
软件开发可以干哪些副业
公安局召开网络安全监督检查会议
数据库异地备份文件夹
access数据库安全按钮
远程连接数据库
pixel谷歌数据库
大学数据库原理及应用期末考试
上海品牌软件开发服务优势
服务器不支持更改怎么办
浪潮服务器的管理ip的
qt 怎么打开mysql数据库
三一重机智能软件开发工程师
竞技世界网络技术有
软件开发生产管理规范
适合学数据库的电脑
前端开发与数据库
北京邮乐网络技术有限公司招聘
写一个数据库最难的地方
网贷注册客户数据库
专升本数据库和c语言哪个难
湖北数据库日志审计价格
写含有三个级的数据库
组态 软件开发
创建某个数据库表
竞技世界网络技术有
网络安全稿100字