var model={name:"boy",age:13};
var CopyModel=model;
console.log(CopyModel.name);
model.name="girl";
console.log(CopyModel.name);

输出值:

CopyModel复制model对象,修改model对象,再输出CopyModel对象,结果却是修改后model对象的值,为什么会这样?

"="就是浅拷贝,浅拷贝指向的内存都是同一个内存的地址:

model和CopyModel的值指向的是同一个内存。

而我们并不需要这样的浅拷贝,深拷贝是在内存中开辟一个新的内存地址:

1.JSON.parese(JSON.stringify(model));(这个实现的缺点是不能拷贝对象中的方法,而且连方法都会丢失。)

var CopyModel=JSON.parse(JSON.stringify(model));

2.通过JQuery的extend对象

 var CopyModel=$.extend(true, {}, model);

js 对象浅拷贝和深拷贝相关推荐

  1. js对象浅拷贝与深拷贝

    一.简介    浅拷贝是拷贝一层,如果数据是基本数据类型,会拷贝其本身,如果除了基本数据类型之外还有一层对象,那么只能拷贝其引用,对象的改变会反应到拷贝对象上.    深拷贝是拷贝多层,每一层的数据都 ...

  2. 对象浅拷贝和深拷贝有什么区别与实现方法

    在JS中,除了基本数据类型,还存在对象.数组这种引用数据类型. 基本数据类型有number,string,boolean,null,undefined五类. 基本数据类型 名值存储在栈内存中 当b=a ...

  3. JS对象拷贝:深拷贝和浅拷贝

    摘要:对象拷贝,简而言之就是将对象再复制一份,但是,复制的方法不同将会得到不同的结果. 本文分享自华为云社区<js对象深浅拷贝,来,试试看!>,作者: 北极光之夜.. 一.速识概念: 对象 ...

  4. js之浅拷贝和深拷贝

    js数据类型主要分基本数据类型和引用数据类型.前者包括Number,String等,后者主要是Object,因此以下会针对不同的数据类型来分析,需要的朋友可以参考一下 1.js内存 js内存,或者说大 ...

  5. 【js】浅拷贝与深拷贝

    一.理解 1.浅拷贝:只是拷贝一层,更深层次对象级别的只拷贝了地址. 浅拷贝的时候如果数据是基本数据类型,那么就如同直接赋值那种,会拷贝其本身,如果除了基本数据类型之外还有一层对象,那么对于浅拷贝而言 ...

  6. js实现浅拷贝和深拷贝

    一.数据类型 数据分为基本数据类型和引用数据类型 基本数据类型(String, Number, Boolean, Null, Undefined,Symbol) 引用数据类型(Object[Array ...

  7. 一行代码完成js对象数组的深拷贝

    1.对于普通数组(数组元素为数字或者字符串),深拷贝很简单,拷贝之后两个数组指针指向的存储地址不同,从而完成深拷贝 var _test = [1,2,3];//原数组 var _testCopy =  ...

  8. JS中浅拷贝和深拷贝的使用,深拷贝实现方法总结

    1.浅拷贝:两个对象经过拷贝后虽然具有相同的属性,但是他们都指向同一个内存空间.操作会引起引用,同一地址的变量一起改变. let a = {x: 1} let b = a b.x = 2 consol ...

  9. 小tips:JS之浅拷贝与深拷贝

    浅拷贝: function extendCopy(p) {var c = {};for (var i in p) {c[i] = p[i];}return c; } 深拷贝: function dee ...

最新文章

  1. 保研夏令营的个人陈述怎么写?
  2. 最前沿:大规模深度强化学习的发展
  3. 走进欧洲、澳洲和加拿大21000个零售网点,比特币现金(BCH)有何潜力?
  4. 对一致性Hash算法,Java代码实现的深入研究
  5. UGUI组件之Canvas 组件简单笔记
  6. 九章算法强化班 - 课程大纲
  7. 科学与技术计算机图片解释,【图片】计算机-科普—都是从网上找的【计算机科学与技术吧】_百度贴吧...
  8. java连接mysql-8.0.11且成功读写
  9. linux vim 安装失败,ubuntu安装vim失败怎么办
  10. 2、★☆STM32的智能浇水补光系统√☆★
  11. python读取pdf提取文字和图片
  12. 大话设计模式之爱你一万年:第八章 结构型模式:外观(门面)模式:冬天有你不再寒冷:2.外观模式之一键开关
  13. 知识图谱构建技术简介
  14. splitter将winform窗体分为三列
  15. c语言编程培训都是小学,小学编程培训班明故宫哪里有C语言培训
  16. 三节点大数据环境安装教程1
  17. Android Data Binding 详细介绍与使用
  18. 安装卡巴斯基提示360 safety guard,360 antivirus,360 safe defender
  19. java 大于当前日期_java判断某日期 是否超过今天
  20. vscode win10笔记本 蓝屏_win10 最近突然频繁蓝屏

热门文章

  1. vscode 默认初始化_VSCode设置初始化模板
  2. 奠定了整个计算机科学的基础是什么,冯 诺依曼对计算机科学发展所作的贡献是什么...
  3. linux命令之nc,emacs,go run,查看文件行数等
  4. 【机器学习】朴素贝叶斯、SVM和数据分布检验分析
  5. python【力扣LeetCode算法题库】27-移除元素
  6. 【Network Security!】密码攻击的原理和方法
  7. linux重做引导分区,linuxgrub 0.97三重引导,基本无解,除非重做硬盘
  8. cocos creator 获取当前时间_前端开发者入门 Creator 必读吧
  9. 如何导入pytorch包_PyTorch 目前的运行途径
  10. python数值型转换字符型_2.6 字符型常量