博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS笔记(13): 深拷贝与浅拷贝
阅读量:7038 次
发布时间:2019-06-28

本文共 643 字,大约阅读时间需要 2 分钟。

  • 深拷贝的原理: 创建一个新的地址,把原数组或者对象中的各项 放到新地址里面 如果改变新地址中的属性,原地址(即原数组或者对象中的属性不会发生改变)

  • 浅拷贝原理:将原数组的地址赋值给新的变量,如果新数组中的属性发生改变,原数组的属性也会发生改变。对象同理

let a = {    name:'Tom',    id: [2,3,{
age:18}]};// let a = [1, 2, 3, { name: 'Tom', arr1: [5, 6, { age: 18 }] }];function deepClone(b) { let empty = Array.isArray(b) ? [] : {}; // console.log(empty) for (let attr in b) { if (b.hasOwnProperty(attr)) { if (typeof b[attr] === 'object') { empty[attr] = deepClone(b[attr]) } else { empty[attr] = b[attr] } } } return empty};let a1 = deepClone(a); //深拷贝let a2 = a1; //浅拷贝复制代码

转载地址:http://trial.baihongyu.com/

你可能感兴趣的文章
jprofiler_监控远程linux服务器的JVM进程(实践)
查看>>
linux 学习之路(学linux必看)
查看>>
域scope 介绍,及查找数据
查看>>
go-import下划线的作用
查看>>
Flink – Stream Task执行过程
查看>>
机器学习第1课:引言(Introduction)
查看>>
iOS 输入时键盘处理问题
查看>>
win7旗舰版显示不了文件扩展名
查看>>
springMVC--动态验证码实现
查看>>
linux scp 命令
查看>>
Ubuntu Server VS Ubuntu Desktop区别
查看>>
Spring Boot MyBatis升级篇-注解-动态SQL(if test)-方案二:@Provider(8)
查看>>
windows10 Sqlserver卸载 指定账户不存在
查看>>
【JavaScript】快速入门
查看>>
【JavaScript】函数
查看>>
POJ 1753 Flip Game (递归枚举)
查看>>
关于ubuntu
查看>>
HTTP2.0
查看>>
Lintcode: Subarray Sum 解题报告
查看>>
C#防止WebBrowser在新窗口中打开链接页面
查看>>