vue对象深拷贝_浅谈深拷贝和浅拷贝
深拷贝和浅拷贝
说起深拷贝和浅拷贝,首先我们来看两个栗子
// 栗子1
var a = 1,b=a;
console.log(a);
console.log(b)
b = 2;
console.log(a);
console.log(b)
// 栗子2
var obj1 = {x: 1, y: 2}, obj2 = obj1;
console.log(obj1) //{x: 1, y: 2}
console.log(obj2) //{x: 1, y: 2}
obj2.x = 2; //修改obj2.x
console.log(obj1) //{x: 2, y: 2}
console.log(obj2) //{x: 2, y: 2}
按照惯性思维,栗子1中obj1应该跟a一样,不会因另外一个值的改变而改变的啊,而这里却是obj1跟着obj2的改变而改变了?同样都是变量,怎么就表现不一样了呢?难道存在等级上的优劣?此处需要沉思一小会。要解决这个问题,就要引入一个JS中基本类型和引用类型的概念了。
基本类型和引用类型
ECMAScript变量包含两种不同数据类型的值:基本类型值和引用类型值。基本类型值指的是那些保存在栈内存中的简单数据段,即这种值完全保存在内存中的一个位置。而引用类型值是指那些保存堆内存中的对象,意思是变量中保存的实际上只是一个指针,这个指针指向内存中的另一个位置,该位置保存对象。
两类数据的保存方式
从上图可以看到,栈内存主要用于存
vue对象深拷贝_浅谈深拷贝和浅拷贝相关推荐
- java对象头_浅谈java对象结构 对象头 Markword
概述 对象实例由对象头.实例数据组成,其中对象头包括markword和类型指针,如果是数组,还包括数组长度; | 类型 | 32位JVM | 64位JVM| | ------ ---- | ----- ...
- java方法区对象类型_浅谈Java内存区域与对象创建过程
一.java内存区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域.这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有的区域则 ...
- python判断两个对象是否为相等使用的运算符是_Python入门_浅谈逻辑判断与运算符...
这是关于Python的第6篇文章,主要介绍下逻辑判断与运算符. (一) 逻辑判断: 如果要实现一个复杂的功能程序,逻辑判断必不可少.逻辑判断的最基本标准:布尔类型. 布尔类型只有两个值:True和Fa ...
- 《计算机辅助教学及应用实践研究》,《论文_浅谈计算机辅助教学(定稿)》
<论文_浅谈计算机辅助教学(定稿)> (3页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 摘要:计算机辅助教学中要用到多媒体课件 ...
- 父子组建传值_浅谈Vue父子组件和非父子组件传值问题
本文介绍了浅谈Vue父子组件和非父子组件传值问题,分享给大家,具体如下: 1.如何创建组件 1.新建一个组件,如:在goods文件夹下新建goodsList.vue goodsList组件 expor ...
- java list数组排序_浅谈对象数组或list排序及Collections排序原理
常需要对list进行排序,小到List,大到对自定义的类进行排序.不需要自行归并或堆排序.简单实现一个接口即可. 本文先会介绍利用Collections对List进行排序,继而讲到Collection ...
- vue 给checkbox 赋值_浅谈vue中关于checkbox数据绑定v-model指令的个人理解
vue.js为开发者提供了很多便利的指令,其中v-model用于表单的数据绑定很常见, 下面是最常见的例子: {{msg}} js里data初始化数据 new Vue({ el: "#myA ...
- java 对象之间转换_浅谈java对象之间相互转化的多种方式
浅谈java对象之间相互转化的多种方式,对象,属性,参数,赋值,不支持 浅谈java对象之间相互转化的多种方式 易采站长站,站长之家为您整理了浅谈java对象之间相互转化的多种方式的相关内容. 第一种 ...
- python的re2和re区别_浅谈Python中re.match()和re.search()的使用及区别
1.re.match()fvk免费资源网 re.match()的概念是从头匹配一个符合规则的字符串,从起始位置开始匹配,匹配成功返回一个对象,未匹配成功返回None.fvk免费资源网 包含的参数如下: ...
最新文章
- Android SurfaceView 黑背景的处理方法
- Android短信管家视频播放器代码备份
- 和lock一起学beego 博客系统开发为例(六)
- LeetCode 78. 子集
- oracle多久断开连接,Oracle自动断开连接
- leetcode 454. 4Sum II | 454. 四数相加 II(Java)
- 链表题目---4 删除链表中重复的结点 和 判断链表是否为回文链表
- vue过滤器微信小程序过滤器和百度智能小程序过滤器
- 不懂 NumPy 算什么 Python 程序员? | CSDN 博文精选
- 【Linux】bash: groupadd: command not found a
- 计算机视觉常用图像软件对比和分析
- mysql commit用法_sql commit用法
- 深入 CoreML 模型定义
- 网络工程师_记录的一些真题_2017上半年上午
- Android——excise(用线性布局、表格布局、相对布局做发送邮件界面)
- 综合案例-快报模块列表制作
- 关于我所能改的常用软件的背景图片
- C++ char和uchar区别
- 模拟电路技术之基础知识(二)
- Your project path contains non-ASCII characters. 解决办法
热门文章
- 使用axios进行下载Excel文件
- ipad air 2 使用itunes恢复更新出现3014解决方法
- 双隐藏层BP网络的matlab仿真,求遗传算法优化含有两个隐含层的BP神经网络的matlab程序...
- 项目实训----Unity多人游戏开发----第十篇
- Modelsim中do文件的使用、读写文件数据
- Citrix 知识中心Top10 - 2012年9月 包括KB、白皮书、补丁、演讲以及工具。
- 微信小游戏真机调试卡在100%
- C#调用Halcon并输出圆心坐标
- ZABBIX修改端口流量监控阀值
- Linux 设置VGA模式