-
什么是深拷贝, 什么是浅拷贝?
-
深拷贝
- 修改新变量的值不会影响原有变量的值
默认情况下基本数据类型都是深拷贝let num1 = 123; let num2 = num1; num2 = 666; // 修改新变量(num2)的值, 没有影响到原有变量(num1)的值 console.log(num1); // 123 console.log(num2); // 666
- 修改新变量的值不会影响原有变量的值
-
浅拷贝
-
修改新变量的值会影响原有变量的值
默认情况下引用类型都是浅拷贝class Person{ name = "lnj"; age = 34; } // 这里会将Person()这个类的地址给p1 let p1 = new Person(); // 这里会将p1的值拷贝给p2, 也就p2也拿到了Person()这个类的地址, 所以p1和p2同时指向Person() let p2 = p1; p2.name = "zs"; // 修改新变量(p2)的值, 影响到了原有变量(p1)的值 console.log(p1.name); // zs console.log(p2.name); // zs
-
-
网友评论