由于此对象的引用类型指向的都是一个地址(除了基本类型跟null,对象之间的赋值,只是将地址指向同一个,而不是真正意义上的拷贝) 数组: let a = [11,22,33]; let b = a; // 这个时候的赋值只是把b的指向地址指向a,所以a b 是同一块物理地址 b.push(44); //这个时候 a和b元素都是 [11,22,33,44] 对象:与数组同理 这样的情况下 如果我们不需要这种双向数据绑定的时候该怎么办呢? 解决办法:小技巧 copyDeep(templateData)
[数组] 数组实例化,并赋值时,可以省略new[]. ]; --未赋值 ,}; --赋值 [对象] 对象实例化,并赋值时,可以省略(). class test { public string name{get;set;} } test a=new test(); --未赋值 test a=new test{name="xiao"}; --赋值
博客地址:https://ainyi.com/72 JavaScript 程序中,对于简单的数字.字符串可以通过 = 赋值拷贝 但是对于数组.对象.对象数组的拷贝,就有浅拷贝和深拷贝之分 浅拷贝就是当改变了拷贝后的数据,原数据也会相应改变 来说说深拷贝 数组深拷贝 遍历赋值 不推荐此方法 let a = [1, 2, 3] let b = [] for (let val of a) { b.push(val) } b.push(4) a // [1, 2, 3] b // [1, 2, 3, 4