JSON.parse() :将字符串作为输入并将其转换为对象。
JSON.stringify():将一个 JSON 对象并将其转换为字符串。
利用 JSON.parse() 和 JSON.stringify() ⽅法可以实现实现深拷贝,深拷贝是指创建⼀个新的对象,并复制原始对象的所有属性,包括嵌套的对象和数组。这意味着在原始对象或新对象
上的更改不会相互影响。
// 定义一个包含嵌套对象的原始对象
const obj = { name: 'John', age: 30, address: { city: 'New York', state: 'NY' } };
// 使用深拷贝创建一个新的对象
const obj2 = JSON.parse(JSON.stringify(obj));
// 修改新对象中嵌套对象的属性
obj2.address.city = 'Chicago';
// 原始对象的嵌套对象属性未受影响
console.log(obj.address.city); // 输出:New York
// 新对象的嵌套对象属性已被修改
console.log(obj2.address.city); // 输出:Chicago
但这种方法有⼀些限制,例如不能复制函数和特殊对象,则可以用递归来实现深拷贝。