分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

js的浅拷贝与深拷贝

发布时间:2023-09-06 02:01责任编辑:彭小芳关键词:js

浅拷贝和深拷贝只针对对象和数组这样的数据类型,对于基本的数据类型不存在这些问题

1、浅拷贝

浅拷贝之后的对象或数组与原对象或数组指向内存中的同一个地址,改变其中任何一个,另一个也会相应的被改变

2、深拷贝

深拷贝之后的对象或数组与原对象和数组的内存地址是独立的,改变任何一个,另一个都不会受影响

数组的深拷贝

var a = [1,2,3];var b = a.concat();//数组拼接var c = a.slice(0);//截取数组

对象的深拷贝

手动复制,将属性一个个复制到新对象中,或使用Object.assign()该方法只能复制基本数值的属性,若属性为引用类型,则为浅复制,即这两种方法的处理深度只有一层,没有做到真正的深复制

转成JSON再转回来

var obj1 = {a:1,b:{a:11,b:22}};var obj2 = JSON.parse(JSON.stringify(obj1))

该方法值适用于JSON格式的对象,而function没有办法转成JSON,该方法只适用于单纯的数据对象

jquery的$.extend方法

lodash中的_.cloneDeep

js的浅拷贝与深拷贝

原文地址:https://www.cnblogs.com/lhyhappy65/p/9221819.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved