JSON.parse(JSON.stringify(row))
时间: 2023-06-30 13:27:10 浏览: 132
`JSON.parse(JSON.stringify(row))` 是一种 JavaScript 中常用的深拷贝方法。其原理是先将一个对象转换成 JSON 格式的字符串,然后再将这个字符串转换回对象,这样就可以生成一个与原对象完全独立的副本。
以下是一个示例:
```javascript
let obj1 = {
name: 'Alice',
age: 20,
address: {
city: 'Beijing',
country: 'China'
}
};
let obj2 = JSON.parse(JSON.stringify(obj1));
obj2.name = 'Bob';
obj2.address.city = 'Shanghai';
console.log(obj1); // {name: "Alice", age: 20, address: {city: "Beijing", country: "China"}}
console.log(obj2); // {name: "Bob", age: 20, address: {city: "Shanghai", country: "China"}}
```
在上面的示例中,我们首先定义了一个对象 `obj1`,其中包含了一个嵌套的对象 `address`。然后,我们使用 `JSON.parse(JSON.stringify(obj1))` 将 `obj1` 进行深拷贝,生成了一个新对象 `obj2`。接着,我们修改了 `obj2` 的属性值,包括其嵌套的对象属性 `city`,并打印了 `obj1` 和 `obj2` 的值。可以看到,`obj1` 的值没有发生任何变化,而 `obj2` 变成了我们所期望的值,证明了深拷贝的成功。
需要注意的是,虽然 `JSON.parse(JSON.stringify(row))` 方法可以实现简单的深拷贝,但是它无法拷贝函数和原型链上的属性和方法,因此在实际使用过程中要注意其局限性。
阅读全文