转自https://www.cnblogs.com/echolun/p/7889848.html 如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,自食其力。 此篇文章中也会简单阐述到栈堆,基 ...
分类:
其他好文 时间:
2020-07-02 16:46:37
阅读次数:
43
利用展开运算符进行数组拷贝,采用的是浅拷贝,即引用的是同一个内存地址。但是当两个数组其中一个进行了变动,发生变动的节点会重新开辟出内存空间,其它未改变的节点依然引用同样的内存块。具体看如下代码示例: let a=[1,2,3]; let b=[4,5]; let c=[...a,...b]; con ...
分类:
编程语言 时间:
2020-07-01 16:05:39
阅读次数:
70
1.踩坑 1.1.深拷贝/浅拷贝 这实际上算不上vue的问题,算是js基础没打好的坑吧。 先来看一个简单的例子: let obj = {name:'fiona-SUN'}; let copyObj = obj; copyObj.name = 'fiona'; console.log(copyObj. ...
分类:
其他好文 时间:
2020-06-30 14:27:56
阅读次数:
41
1. 直接使用JSON.parse(JSON.stringify(Object))来进行缺点: 如果对象或者数组里有函数什么的, 就会出问题啦(也有解决办法) 2. 使用ES的扩展运算符...let newObj = { ...data }相当于 let newObj = Object.assign ...
分类:
Web程序 时间:
2020-06-30 12:42:32
阅读次数:
66
先看看啥叫深拷贝?啥叫浅拷贝? 假设B复制了A,修改A的时候,看B是否发生变化: 如果B跟着也变了,说明是浅拷贝,拿人手短!(修改堆内存中的同一个值) 如果B没有改变,说明是深拷贝,自食其力!(修改堆内存中的不同的值) 深拷贝(deepCopy)是增加了一个指针并且申请了一个新的内存,使这个增加的指 ...
分类:
其他好文 时间:
2020-06-30 12:33:57
阅读次数:
57
一、概述 最小生成树问题顾名思义,概括来说就是路修的最短。 最小生成树相关概念: 带权图:边赋以权值的图称为网或带权图,带权图的生成树也是带权的,生成树T各边的权值总和称为该树的权。 最小生成树(MST):权值最小的生成树。 最小生成树的性质:假设G=(V,E)是一个连通网,U是顶点V的一个非空子集 ...
分类:
其他好文 时间:
2020-06-29 20:20:44
阅读次数:
76
<script> var b = { name : "333", say: function (func){ func(); }, prop:null } function deepClone(param){ let result = Array.isArray(param)?[]:{} if(pa ...
分类:
其他好文 时间:
2020-06-29 18:27:44
阅读次数:
61
一.变量声明与赋值 var name type 比如 var sum int 每行结束可以不用分号 二.数组 三.指针 指针声明方式 var ptr *int ptr :指针名字 *int 表示指针的类型 空指针:nil 跟c语言中的NULL 是一样的 结构体指针 和结构体实例 访问结构体成的方式都 ...
分类:
编程语言 时间:
2020-06-29 15:41:41
阅读次数:
61
浅拷贝与深拷贝 为了更好的理解js的深浅拷贝,我们先来理解一些js基本的概念 ##数据类型 javascript中的数据分为基本数据类型(String, Number, Boolean, Null, Undefined,Symbol)和复杂的数据类型(也称作引用数据类型-Object)。 当一个变量 ...
分类:
其他好文 时间:
2020-06-29 00:07:35
阅读次数:
92
1、typedef struct 和struct 的区别 struct Studen1 { int ID; char name; }stu1; typedef struct Student2 { int ID; char name; }stu2; Student1是结构体的名字,stu1是一个变量, ...
分类:
其他好文 时间:
2020-06-28 19:03:14
阅读次数:
38