JSON.parse(JSON.stringify()),
时间: 2023-11-25 07:51:30 浏览: 72
json.stringify()与json.parse()的区别以及用处.docx
`JSON.parse(JSON.stringify())`是一种常见的JavaScript技巧,用于将JavaScript对象转换为JSON字符串,然后再将其解析回JavaScript对象。这个技巧的主要作用是深度克隆一个JavaScript对象,因为它可以创建一个新的JavaScript对象,该对象与原始对象具有相同的属性和值,但是它们不共享引用关系。
以下是一个使用`JSON.parse(JSON.stringify())`进行深度克隆的示例:
```javascript
let obj1 = {a: 1, b: {c: 2}};
let obj2 = JSON.parse(JSON.stringify(obj1));
obj2.b.c = 3;
console.log(obj1); // 输出:{a: 1, b: {c: 2}}
console.log(obj2); // 输出:{a: 1, b: {c: 3}}
```
在上面的示例中,我们首先创建了一个名为`obj1`的JavaScript对象,它包含两个属性`a`和`b`,其中`b`又是一个包含属性`c`的对象。然后,我们使用`JSON.stringify()`将`obj1`转换为JSON字符串,再使用`JSON.parse()`将其解析回JavaScript对象,并将其赋值给`obj2`。接下来,我们修改`obj2`的属性`b.c`的值为`3`,并输出`obj1`和`obj2`的值。可以看到,`obj1`的属性`b.c`的值仍然是`2`,而`obj2`的属性`b.c`的值已经被修改为`3`,这证明了`JSON.parse(JSON.stringify())`可以成功地进行深度克隆。
阅读全文