43 JavaScript中的浅拷贝与深拷贝
技术交流QQ群:1027579432,欢迎你的加入!
欢迎关注我的微信公众号:CurryCoder的程序人生
1.浅拷贝与深拷贝
- 浅拷贝只是拷贝一层,更深层次对象级别的只拷贝引用。
- 深拷贝拷贝多层,每一级别的数据都会被拷贝。
- Object.assign(target,sources),es6新增方法可以实现浅拷贝。
<script>var obj = {id: 1,name: 'CurryCoder',msg: { // 更深层次的对象age: 18,address: 'earth'},color: ['pink', 'red']};// 浅拷贝var o = {};for (var k in obj) {o[k] = obj[k]; // 浅拷贝只拷贝一层,更深层次对象级别的只拷贝引用。如只拷贝obj中msg的引用}console.log(o);o.msg.age = 30;console.log(obj);console.log('-------以下是ES6新增的浅拷贝方法--------');Object.assign(o, obj);console.log(o);o.msg.age = 60;console.log(obj);// 深拷贝var oldobj = {id: 1,name: 'CurryCoder',msg: { // 更深层次的对象age: 18,address: 'earth'},color: ['pink', 'red']};var res = {};function deepCopy(target, sources) {for (var k in sources) {// 判断sources[k]属于哪种数据类型var item = sources[k];// 判断是否是数组if (item instanceof Array) {target[k] = [];deepCopy(target[k], item);// 判断是否是对象} else if (item instanceof Object) {target[k] = {};deepCopy(target[k], item);// 判断是否是简单数据类型} else {target[k] = item;}}}console.log('------深拷贝-------');deepCopy(res, oldobj);console.log(res);res.msg.age = 44;console.log(oldobj); </script>
2.资料下载
- 笔记及代码,欢迎 star,follow,fork…
43 JavaScript中的浅拷贝与深拷贝相关推荐
- JavaScript中的浅拷贝与深拷贝(手写浅拷贝和深拷贝)
一.简介 数据分为基本数据类型和引用数据类型. 基本数据类型: String.Number.Boolean.Null.Undefined.Symbol.基本数据类型是直接存储在栈中的数据. 引用数据类 ...
- js 浅拷贝直接赋值_JS中实现浅拷贝和深拷贝的代码详解
(一)JS中基本类型和引用类型 JavaScript的变量中包含两种类型的值:基本类型值 和 引用类型值,在内存中的表现形式在于:前者是存储在栈中的一些简单的数据段,后者则是保存在堆内存中的一个对象. ...
- 【转】JAVA中的浅拷贝和深拷贝
原文网址:http://blog.bd17kaka.net/blog/2013/06/25/java-deep-copy/ JAVA中的浅拷贝和深拷贝(shallow copy and deep co ...
- Python中的浅拷贝和深拷贝(一看就懂!!!)
浅拷贝和深拷贝一直傻傻的分不清,甚至有时候会理解反.今天就简单总结一下python中的浅拷贝和深拷贝. 总结 最直观的理解就是: 1.深拷贝,拷贝的程度深,自己新开辟了一块内存,将被拷贝内容全部拷贝过 ...
- JavaScript 中的对象拷贝(深拷贝、浅拷贝)
对象是 JavaScript 的基本块.对象是属性的集合,属性是键值对.JavaScript 中的几乎所有对象都是位于原型链顶部 Object 的实例. 介绍 如你所知,赋值运算符不会创建一个对象的副 ...
- 说说JS中的浅拷贝与深拷贝
outline: 为什么要说JS中深拷贝与浅拷贝 JS对类型的分类 immutable与mutable 简单类型检测 浅拷贝VS深拷贝 为什么要说JS中深拷贝与浅拷贝 近来在研读underscore的 ...
- 浅拷贝 python_python中的浅拷贝和深拷贝
http://python.jobbole.com/82294/ Python中,对象的赋值,拷贝(深/浅拷贝)之间是有差异的,如果使用的时候不注意,就可能产生意外的结果. 下面本文就通过简单的例子介 ...
- JavaScript知识之 浅拷贝与深拷贝
值传递与引用传递 JavaScript中有两种数据类型:基本数据类型和引用数据类型两种. 从名字上来看,大概也能猜到它们的区别: 基本数据类型 值直接存储在栈内存中 对于引用类型来说 它存储了一个引用 ...
- Java中的浅拷贝与深拷贝
一.引用拷贝与对象拷贝 class Person implements Cloneable{private String name;private int age;...省略get和set方法 pro ...
最新文章
- Bootstrap 按钮菜单的尺寸
- 计算机4000字论文格式,科学论文格式要求4000字
- linux系统装psp,psp上装Linux
- 安卓逆向之某瓜数据app签名sign破解
- QT IOS风格音乐播放器(一) 项目介绍
- 肿瘤NGS的常规检测流程
- 腾讯 2015年校招 笔试 附加题
- 测量数据的计算机处理实验报告,测量数据处理实验报告..doc
- 人工智能html5背景,HTML5人工智能基础及实践
- iOS上应用如何兼容32位系统和64位系统
- 解密:Gmail移动客户端自动邮件回复技术
- 从REINFORCE到PPO,看Policy Gradient的前世今生
- 用python简单入门写糖葫芦!
- 在c程序语言中aph,C 语言试题
- Windows Server 2012 蓝屏 Wpprecorder.sys 故障
- Mathtype基本使用
- app自动化测试最佳实践
- 微信读书小队组队专用群招募
- CCTC区块链峰会议题正式发布
- ASP.NET 或C# 中ASCII码含中文字符的编解码处理