//引用类型遵循引用传递(地址传递)
//浅拷贝
// var c = [1, 2, 3];
// var d = c;//址传递 c将地址给了d,c和d就是相同的地址,指向相同的值。
// d[0] = 100;
// console.log(c);
// console.log(d);
//解决方式-浅拷贝
//深拷贝
var c = [1, 2, 3];
var d = [];//d有了新的地址
for (var i in c) {//i:0,1,2
d[i] = c[i];//将c数组的每一项一一赋值给d.
}
d[0] = 100;
console.log(c);//[1, 2, 3]
console.log(d);//[100, 2, 3]
总结
// 引用数据类型
浅拷贝
直接赋值 赋值的是 内存地址
赋值之后 两个变量使用的相同内容,一个操作,另一个也会改变
深拷贝
循环遍历,获取引用数据类型中,存储的每一个数据信息
赋值到新的变量中
赋值之后 两个变量,没有任何关系