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
先看看啥叫深拷贝?啥叫浅拷贝? 假设B复制了A,修改A的时候,看B是否发生变化: 如果B跟着也变了,说明是浅拷贝,拿人手短!(修改堆内存中的同一个值) 如果B没有改变,说明是深拷贝,自食其力!(修改堆内存中的不同的值) 深拷贝(deepCopy)是增加了一个指针并且申请了一个新的内存,使这个增加的指 ...
分类:
其他好文 时间:
2020-06-30 12:33:57
阅读次数:
57
浅拷贝与深拷贝 为了更好的理解js的深浅拷贝,我们先来理解一些js基本的概念 ##数据类型 javascript中的数据分为基本数据类型(String, Number, Boolean, Null, Undefined,Symbol)和复杂的数据类型(也称作引用数据类型-Object)。 当一个变量 ...
分类:
其他好文 时间:
2020-06-29 00:07:35
阅读次数:
92
1、复制对象:使用扩展运算符复制对象时是浅拷贝 //复制对象:使用扩展运算符复制对象时是浅拷贝 const obj1 = { a:1, b:2, d:{ aa:1, bb:2 } } const obj2 = { c:3, a:9 } const cObj1 = {...obj1}; console ...
分类:
其他好文 时间:
2020-06-26 01:29:13
阅读次数:
120
1、浅拷贝就是值的复制。对象因为是引用类型,所以它的值就是一个指针。当改变其中一个的时候,另一个也会改变。如下obj把它的指针复制给obj1 ,所以这两个对象指向同一个内存地址。当改变obj1的a属性后,obj的属性a也会发生变化。这就是浅拷贝。 let obj1 = {a:1}; let obj2 ...
分类:
其他好文 时间:
2020-06-26 01:26:14
阅读次数:
59
深拷贝 // 深拷贝拷贝多层, 每一级别的数据都会拷贝. var obj = { id: 1, name: 'andy', msg: { age: 18 }, color: ['pink', 'red'] }; var o = {}; // 封装函数 function deepCopy(newobj ...
分类:
其他好文 时间:
2020-06-25 19:26:28
阅读次数:
58
遇到的error,当遍历字典的时候修改字典数据会报错,例如 temp = {'name': 'Mike', 'age': '25', 'shengao': 180, 'weight': 80} for key,value in temp.items(): del temp[key] #Runtime ...
分类:
其他好文 时间:
2020-06-25 19:20:31
阅读次数:
67
数组常用方法: 数组解构赋值应用 // 交换变量 [a, b] = [b, a] [o.a, o.b] = [o.b, o.a] // 生成剩余数组 const [a, ...rest] = [...'asdf'] // a:'a',rest: ["s", "d", "f"] 数组浅拷贝 const ...
分类:
编程语言 时间:
2020-06-24 18:08:53
阅读次数:
57
深拷贝和浅拷贝 1、浅拷贝只是拷贝一层,更深层次对象级别的只拷贝引用。 2、深拷贝拷贝多层,每一级别的数据都会拷贝。 3、Object.assign(target,...sources) : ES6新增方法可以浅拷贝。推荐这种方法。 1 <!DOCTYPE html> 2 <html> 3 <hea ...
分类:
其他好文 时间:
2020-06-22 15:15:51
阅读次数:
41
拷贝(复制)为对象创建副本,即将对象中的所有字段复制到新的对象(副本中)。拷贝有两种:浅拷贝和深拷贝,微软建议用类型继承ICloneable接口的方式明确该类型是可以被拷贝的,ICloneable接口只提供了一个Clone方法,需要根据需要在Clone方法内实现浅拷贝或深拷贝。 1、浅拷贝:把源对象 ...