用前端的方法实现对象obj={name.‘Lily’,age=18}的深拷贝(至少用三种方法)
时间: 2024-03-03 10:47:48 浏览: 72
好的,以下是三种前端实现对象深拷贝的方法。
方法一:使用JSON.parse()和JSON.stringify()方法
```
// 定义一个对象
var obj = {name: 'Lily', age: 18};
// 使用JSON.parse()和JSON.stringify()方法实现深拷贝
var objCopy = JSON.parse(JSON.stringify(obj));
// 修改objCopy的属性值
objCopy.name = 'Lucy';
objCopy.age = 20;
// 输出obj和objCopy的属性值
console.log(obj); // 输出:{name: "Lily", age: 18}
console.log(objCopy); // 输出:{name: "Lucy", age: 20}
```
方法二:使用Object.assign()方法
```
// 定义一个对象
var obj = {name: 'Lily', age: 18};
// 使用Object.assign()方法实现深拷贝
var objCopy = Object.assign({}, obj);
// 修改objCopy的属性值
objCopy.name = 'Lucy';
objCopy.age = 20;
// 输出obj和objCopy的属性值
console.log(obj); // 输出:{name: "Lily", age: 18}
console.log(objCopy); // 输出:{name: "Lucy", age: 20}
```
方法三:使用扩展运算符(...)实现对象的浅拷贝和深拷贝
```
// 定义一个对象
var obj = {name: 'Lily', age: 18};
// 使用扩展运算符实现浅拷贝
var objCopy1 = {...obj};
// 使用扩展运算符实现深拷贝
var objCopy2 = {...obj, age: 20};
// 修改objCopy2的属性值
objCopy2.name = 'Lucy';
// 输出obj、objCopy1和objCopy2的属性值
console.log(obj); // 输出:{name: "Lily", age: 18}
console.log(objCopy1); // 输出:{name: "Lily", age: 18}
console.log(objCopy2); // 输出:{name: "Lucy", age: 20}
```
以上就是三种前端实现对象深拷贝的方法,希望能对你有所帮助。
阅读全文