当前位置:网站首页>JS中深拷贝和浅拷贝的区别
JS中深拷贝和浅拷贝的区别
2022-07-27 05:03:00 【weixin_46051260】
主要在于复制出来的新对象和原来的对象是否会相互影响,改一个,另一个是否会变
区别
1)浅拷贝:仅仅是指向被复制的内存地址,如果原地址发生改变,那么浅拷贝出来的对象也会相应的改变
2)深拷贝:在内存中开辟一块新的地址用于存放复制的对象,新旧对象不会共享内存,修改其中一个,另一个也会受到影响
方法
1)浅拷贝
- 通过=直接赋值
- Object.assign(目标对象,源对象)方法
2)深拷贝
- 通过JSON对象实现深拷贝:
*1----JSON.stringify:将js的值(对象或者数组)转为一个JSON字符串
*2----JSON.parse:用来解析JSON字符串,转换为Object类型
var obj={
name:'jack',age:18}
var obj1=JSON.parse(JSON.stringify(obj))
obj1.age=20
console.log(obj);//{name:'jack',age:18}
console.log(obj1);//{nmae:'jack',age:20}
- 使用扩展运算符实现深拷贝
var obj={
name:'bob',age:10}
var obj1={
...obj,age:20}
console.log(obj1);//{name:'bob',age:20}
边栏推荐
猜你喜欢
随机推荐
后台用户管理展示添加功能实现
分享一道关于#define的选择题(内含#define在预编译时的替换规则,程序环境和预处理相关知识)
C WPF uses listbox to implement ruler control
C语言入门介绍
Notes series k8s orchestration MySQL container - stateful container creation process
Pytorch installation new pit
初识C语言——字符串+转义字符+注释
云E办项目之部门管理
flask项目配置
Program environment and preprocessing (Part 1): how does a program run successfully?
C语言中堆内存介绍和管理
事务,订单系统添加事务
Cenos7更新MariaDB
初识C语言——为什么每个C程序都有一个main函数
订单系统功能实现
C语言进制转换以及原补反码位运算介绍
背景图片相关应用-铺满,自适应
Trying to evolve_ My first CSDN blog
块,行内块元素之间存在间隙
How to view the evaluation of tutors







