浅克隆中,多维数组克隆后
来源:5-6 深克隆和浅克隆
拜托你去睡觉吧
2020-12-09 18:51:00
var arr1 = [1, 2, 3, [4, 5, 6]];
var arr2 = [];
for (i = 0; i < arr1.length; i++) {
arr2.push(arr1[i]);
}
console.log(arr2);
console.log(arr1 == arr2); // false
console.log(arr1[3] == arr2[3]); // true 藕断丝连
1回答
同学你好, 因为引用类型值进行比较的时候,==这种方式比较的是内存地址。在arr2浅克隆arr1时,会直接将arr1中的引用类型(数组[4,5,6])的地址直接交给arr2,也就说arr1和arr2中的数组[4,5,6]是同一个内存地址,所以arr1[3] == arr2[3]的结果返回是true
祝学习愉快~