JS中深拷贝和浅拷贝的区别是什么,需要具体代码示例
在JavaScript中,对象的拷贝分为浅拷贝和深拷贝两种方式。浅拷贝仅仅复制对象的引用地址,而深拷贝则是创建一个完全独立的副本。
浅拷贝是将原对象的引用地址复制给新对象,它们指向同一块内存空间。当修改其中任意一个对象的属性时,另一个对象的相应属性也会被修改。这是因为它们共享相同的内存地址。
深拷贝是创建一个全新的对象,并将原对象中的所有属性逐一复制到新对象中,新对象和原对象互不影响。即使修改其中一个对象的属性,另一个对象的属性也不会受到影响。
下面,我将通过具体的代码示例来说明浅拷贝和深拷贝的区别。
首先,我们来看一个浅拷贝的示例:
let obj1 = {name: "Alice", age: 20}; let obj2 = obj1; obj1.age = 21; console.log(obj1); // {name: "Alice", age: 21} console.log(obj2); // {name: "Alice", age: 21}