浅拷贝json。parse
时间: 2024-05-26 13:06:29 浏览: 8
浅拷贝是指在拷贝对象时,只复制对象的引用而不复制对象本身。对于JSON.parse()方法来说,它是将一个JSON字符串解析为对应的JavaScript对象或值。
JSON.parse()方法接受一个JSON字符串作为参数,并返回解析后的JavaScript对象或值。在解析过程中,JSON.parse()会创建一个新的对象,并将原始JSON字符串中的属性和值复制到新对象中。
需要注意的是,浅拷贝只会复制对象的引用,而不会复制对象内部的属性和值。这意味着如果原始JSON字符串中的属性值是引用类型(如数组或对象),那么在浅拷贝后,新对象中的该属性仍然指向原对象中的同一引用。
以下是使用JSON.parse()进行拷贝的示例:
```javascript
const jsonString = '{"name": "John", "age": 30, "hobbies": ["reading", "running"]}';
const originalObj = JSON.parse(jsonString);
// 修改原始对象的属性值
originalObj.name "Tom";
originalObj.hobbies.push("swimming");
console.log(originalObj); // 输出: {: 'Tom', age: 30, hobbies: [ 'reading', 'running', 'swimming' ] }
// 新对象与原始对象共享同一个hobbies数组
const copiedObj = JSON.parse(jsonString);
console.log(copiedObj); // 输出: { name: 'John', age: 30, hobbies: [ 'reading', 'running', 'swimming' ] }
```
在上述示例中,通过JSON.parse()方法将JSON字符串解析为原始对象originalObj。然后修改了originalObj的属性值,包括name和hobbies。接着使用JSON.parse()再次解析同一个JSON字符串,得到了新的对象copiedObj。可以看到,新对象copiedObj与原始对象originalObj共享同一个hobbies数组,因为浅拷贝只复制了引用。